正在加载图片...
设计模式(PatternsinJava)-htp/vww.jdon.com public class Factory( public static Sample creator[ f(which==1) return new My Sample o else if (which==2) return new His) 那么在你的程序中,如果要实例化 My Sample时.就使用 sample=Factory creator o 这样,在整个就不涉及到 Sample的具体子类,达到封装效果,也就减少错误修改的机会,这个 原理可以用很通俗的话来比喻:就是具体事情做得越多,越容易范错误.这每个做过具体工作 的人都深有体会,相反,官做得越高,说岀的话越抽象越笼统,范错误可能性就越少.好象我们 从编程序中也能悟出人生道理?呵呵. 好了,言归正传,既然不可避免使用 factory,那我们就认识一下工厂模式 如何使用? 工厂模式中有:工厂方法( Factory Method)抽象工厂( Abstract Factory) 上例中,我们使用的是简单的工厂方法.这两个模式没有很明显的区别,区别在于需要创建 对象的复杂程度上。如果我们创建对象的方法变得复杂了,我们就可能要将上例中 Factory 变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现 public abstract class Factory I public abstract Sample creator O public abstract Sample2 creator O public class SimpleFactory extends Factory ublic sample creator i设计模式(Patterns in Java) -- http://www.jdon.com 10 public class Factory{ public static Sample creator(){ .... if (which==1) return new MySample(); else if (which==2) return new HisSample(); } } 那么在你的程序中,如果要实例化 MySample 时.就使用 Sample sample=Factory.creator(); 这样,在整个就不涉及到 Sample 的具体子类,达到封装效果,也就减少错误修改的机会,这个 原理可以用很通俗的话来比喻:就是具体事情做得越多,越容易范错误.这每个做过具体工作 的人都深有体会,相反,官做得越高,说出的话越抽象越笼统,范错误可能性就越少.好象我们 从编程序中也能悟出人生道理?呵呵. 好了,言归正传,既然不可避免使用 factory,那我们就认识一下工厂模式. 如何使用? 工厂模式中有: 工厂方法(Factory Method) 抽象工厂(Abstract Factory). 上例中,我们使用的是简单的工厂方法. 这两个模式没有很明显的区别,区别在于需要创建 对象的复杂程度上。如果我们创建对象的方法变得复杂了,我们就可能要将上例中 Factory 变成抽象类,将共同部分封装在抽象类中,不同部分使用子类实现: public abstract class Factory{ public abstract Sample creator(); public abstract Sample2 creator(); } public class SimpleFactory extends Factory{ public Sample creator(){
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有