2011年度CSDN高校俱乐部“优秀主席”火热出炉! 点击了解英特尔云计算 2012年1月当选微软MVP的CSDN会员名单揭晓!
设计模式实际应用场景(转)
Java常见设计模式应用场景 详细模式介绍可见 1、抽象工厂 public abstract Class AbstractFactory{ //创建一系列相互关联的对象如游戏场景中相互关联的Road,Building,Tunnel,Jungle对象 public abstract ProductA createProductA(); public abstract ProductB createProductB(); /........ }
//多系列体现在ConcreteFactoryA,ConcreteFactoryB这些具体工厂创建该系列下的多个相互关联的对象 public class ConcreteFactoryA extends AbstractFactory{ //具体创建ProductA,ProductB的哪个子类再这里指定,如 //这里相互关联的对象体现在ProductA1和ProductB1够成第一种风格 public ProductA createProductA(){ return new ProductA1(); return new ProductB1(); } }
public class ConcreteFactoryB extends AbstractFactory{ //具体创建ProductA,ProductB的哪个子类再这里指定,如 public ProductA createProductA(){ return new ProductA2(); return new ProductB2(); } }
public abstract class ProductA{ //其子类是ProductA1,ProductA2 //定义一些接口; public void someMethod(); //...... }
public abstarct class ProductB{ //其子类是ProductB1,ProductB2 //定义一些接口; public void someMethod(); //...... }
public class Test{ ProductA a; ProductB b; public static void main(String[] args){ //客户端要创建不同风格的游戏场景(多系列) AbstractFactory factory = new ConcreteFactoryA(); ProductA a = factory.createProductA(); ProductB b = factory.createProductB(); play();
//创建另一种风格的游戏场景,只须更改ConcreteFactoryB(); //
//AbstractFactory factory = new ConcreteFactoryA(); //ProductA a = factory.createProductA(); //ProductB b = factory.createProductB(); //play(); }
public static void play(){ a.someMethod(); b.someMethod(); } }
//抽象定义如何构建Product及其子对象 public abstract class Builder{ //获取整体对象 (责任编辑:JavaVideo) |
