Java设计模式之抽象工厂模式
抽象工厂模式是所有形态工厂模式中主最为抽象和最其一般性的。抽象工厂模式可以向客户端提供一个接口,使得客户端不必制定产品的具体类型的情况下,能够创建多个产品族的产品对象。
模式中包含的角色及其职责:
1.抽象工厂角色
抽象工厂模式的核心,包含对多个产品结构的声明,任何工厂类都必须实现这个接口。
public interface FruitFactory{ public Fruit getAppley(); public Fruit getPeer(); }
2.具体工厂角色
具体工厂类是抽象工厂的一个实现,负责实例化某个产品族中的产品对象。
public class BigFruitFactory impelemnts FruitFactory{ public Fruit getApple(){ return new BigApple(); } public Fruit getPeer(){ return new BigPeer(); } }
3.抽象角色
抽象模式所创建的所有对象的父类,他负责描述所有实例所共有的公共接口。
public interface Fruit{ public void get(); }
4.具体产品角色
抽象模式所创建的具体实例对象。
public class BigApple extends Fruit{ public void get(){ System.out.println("大苹果"); } } public class BigPeer extends Fruit{ public void get(){ System.out.println("大梨"); } }
客户端程序:
public class Client{ public static void main(String[] args){ FruitFactory bff=new BigFruitFactory(); Fruit apple=bff.getApple(); apple.get(); Fruit peer=bff.getPeer(); peer.get(); } }