public interface Makeable { public void make(); } public abstract class Product implements Makeable { } public class TShirt extends Product { @Override public void make() { // TODO Auto-generated method stub } } public class Album extends Product { @Override public void make() { // TODO Auto-generated method stub } } <p class="indent">
[该贴被laoliang于2008-09-04 16:29修改过]
[该贴被laoliang于2008-09-04 16:33修改过]
abstract class Category{ abstract void display(Product product); } class Photo extends Category{ public void display(Product product){ //根据产品参数进行一类产品的制作 //do make //直接添加边框和背景 } } class Product{ //先虚拟一下产品的材料,照实际情况定义这个(些)值。 private Stuff stuff; private Category category; void display(){ category.display(this); } } class Client{ void test(){ product.display(); } } <p class="indent">
abstract class Displayer{ //添加边框的方法 void addBorder(Stuff stuff); //添加背景图片的方法 void addBackImg(Stuff stuff); } //比如说这个零件制作器需要先把所有的图片转成jpg格式 class OneDisplay extends Displayer{ void addBorder(Stuff stuff){} void addBackImg(Stuff stuff){} } //比如说这个零件制作器需要把图转成png格式 class TwoDisplay extends Displayer{ void addBorder(Stuff stuff){} void addBackImg(Stuff stuff){} } abstract class Category{ protected Displayer displayer; void setDisplayer(Displayer displayer){ this.displayer=displayer; } abstract void display(Product product); } class Photo extends Category{ public void display(Product product){ //根据产品参数用具体的零件制作器进行一类产品的制作 displayer.addBorder(product.getStuff()); displayer.addBackImg(product.getStuff()); } } class Client{ void test(){ Displayer d;//get d Product p; p.getCategory().setDisplayer(d); p.display(); } } <p class="indent">
猜你喜欢
本站原创《复杂软件设计之道:领域驱动设计全面解析与实战》
其他人在看