java设计模式---Abstract Facotry Pattern---抽象工厂模式
来源:互联网 发布:迟夙生的网络办公室 编辑:程序博客网 时间:2024/05/20 07:16
抽象工厂模式中的抽象工厂是把各种抽象零件组合成抽象产品。换句话说,处理的重点是在接口(API)而不是具体的实现。只利用接口就能把零件组合成产品。Template Method Pattern和Builder Pattern的情形是在子类进行具体的实现,而Abstract Factory Pattern也同样是由子类来处理具体的实现。在子类就会出现具体工厂利用具体零件组合成具体产品。
看例程:
public class ABstrctFactory{ /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Factory myFactory = Factory.getFactory("abstrctfactory.toyFactory"); Ear pigEar = myFactory.createEar("pig ear"); Tail pigTail = myFactory.createTail("pig tail"); Body pigBody = myFactory.createBody("pig body"); pigBody.add(pigEar); pigBody.add(pigTail); pigBody.output(); }}
public abstract class Factory{ public static Factory getFactory(String classname) { Factory factory = null; try { factory = (Factory)Class.forName(classname).newInstance(); } catch(Exception e) { e.printStackTrace(); } return factory; } public abstract Ear createEar(String earString); public abstract Tail createTail(String tailString); public abstract Body createBody(String bodyString);}
public abstract class Item{ public String itemName; public Item(String itemName) { this.itemName = itemName; }}
public class Tail extends Item{ protected float length; public Tail(String tailName) { super(tailName); }}
public class Ear extends Item{ protected float length; public Ear(String earString) { super(earString);; }}
public abstract class Body{ protected Vector contendVector = new Vector(); public Body() { System.out.println("this is body of the toy"); } public void add(Item it) { contendVector.add(it); } public void output() { for(int i = 0;i<contendVector.size();i++) { Item item = (Item)contendVector.get(i); System.out.println((item.itemName)); } }}
public class toyFactory extends Factory{ @Override public Tail createTail(String tailname) { return new Tail(tailname); } @Override public Ear createEar(String earString) { return new Ear(earString); } @Override public Body createBody(String bodyString) { return new Body(){}; } }
- java设计模式---Abstract Facotry Pattern---抽象工厂模式
- 设计模式:Abstract Facotry(抽象工厂) 模式
- JAVA设计模式之 抽象工厂模式【Abstract Factory Pattern】
- Java设计模式--抽象工厂模式【Abstract Factory Pattern】
- Java设计模式:抽象工厂模式(Abstract Factroy Pattern)
- JAVA设计模式之 抽象工厂模式【Abstract Factory Pattern】
- 设计模式【抽象工厂Abstract Factory Pattern】
- Java Abstract Factory Pattern(抽象工厂模式)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式 - Abstract Factory Pattern(抽象工厂模式)
- 设计模式3:Abstract Factory Pattern(抽象工厂模式)
- 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)
- Net设计模式之抽象工厂模式(Abstract Factory Pattern)
- 设计模式——抽象工厂模式【Abstract Factory Pattern】
- c++设计模式:抽象工厂模式(Abstract Factory Pattern)
- 设计模式 - 抽象工厂模式(abstract factory pattern) 详解
- 浅谈设计模式:抽象工厂模式(Abstract Factory Pattern)
- XP cmd命令大全
- 河软CSDN高校俱乐部落户新浪微博啦!!
- truncate操作与delete操作对比
- 关于CSS+DIV 开发 与各浏览器的兼容性问题及解决方法
- 关于CSS+DIV,浏览器兼容问题的一些心得
- java设计模式---Abstract Facotry Pattern---抽象工厂模式
- sharepoint中使用PeopleEditor控件为列表项赋值示例
- 学习心得
- 《stlport》源码解析-目录篇 @原创@
- html
- 我也来当刁民
- 利用php来嗅探劫持服务器数据
- Oracle 高水位线的一点研究
- Git分支