设计模式 之 工厂模式
下载 23种设计模式源码 :http://download.csdn.net/download/knight_black_bob/8936043
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
创建型模式,共五种:
工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式
结构型模式,共七种:
适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式
行为型模式,共十一种:
策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
package 设计模式.工厂模式; //普通工厂模式: 建立一个工厂类,对实现了同一接口的一些类进行实例的创建 //多个工厂方法模式,是对普通工厂方法模式的改进,在普通工厂方法模式中,如果传递的字符串出错,则不能正确创建对象,而多个工厂方法模式是提供多个工厂方法,分别创建对象 //静态工厂方法模式,将上面的多个工厂方法模式里的方法置为静态的,不需要创建实例,直接调用即可 public abstract class Gateway { private static final String PRODUCTION_HOST = "gateway.push.apple.com"; private static final int PRODUCTION_PORT = 2195; private static final String DEVELOPMENT_HOST = "gateway.sandbox.push.apple.com"; private static final int DEVELOPMENT_PORT = 2195; private static Gateway DEVELOPMENT = new Gateway() { @Override public int port() { return DEVELOPMENT_PORT; } @Override public String host() { return DEVELOPMENT_HOST; } }; private static Gateway PRODUCTION = new Gateway() { @Override public int port() { return PRODUCTION_PORT; } @Override public String host() { return PRODUCTION_HOST; } }; public static Gateway get(boolean production) { if (production) { return PRODUCTION; } else { return DEVELOPMENT; } } public abstract String host(); public abstract int port(); public static void main(String[] args) { Gateway gw = Gateway.get(true); } }
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
上一篇: JS比较两个日期的间隔是否够一个周期(如日,周,月,年)
下一篇: 设计模式之工厂方法模式一