WWW.LOUGH.COM.CN

加入收藏 | 设为首页 | 联系站长
首页 | Java | C&C++ | 数据库 | 经验交流
论坛首页 | 综合区 | 贴图区 | 狐朋狗友 | 学习区 | 站务区
博客首页 | IT技术 | WebServices | Hibernate | Java设计模式 | Struts | AJAX | 数据库
首页 | 中华古籍 | 网络原创 | 随记

Java类库中的设计模式(三)

Java类库中的设计模式(三)

    如果要问起近10年来在计算机软件工程领域所取得的重大成就,那么就不能不提到
设计模式(Design Pattern)了。 什么是模式呢?
1.3 另一个简单的例子(3月12日)
    实际上这只是工厂方法的最简单,最明显的应用。还有一些地方也会用到工厂方法
,但是并不像上面那个问题所表现的那么直接。再举个最简单的例子吧,比如我们需要
一个类来完成两个逻辑变量的或运算,我们都知道,如果第一个逻辑变量是True,那么
可以不用任何计算就可以得到最后的结果是True。而如果不是True,则需要进行运算。
根据这一点,我们可以用两个类和工厂方法模式来实现这个模型,以达到简化计算的目
的。
class ComputeExp {
    boolean a,b;
    boolean geta(){ return a};
    boolean getb(){ return b};
    boolean compute(){ return a|b};
    public computeExp(boolean a1, boolean b1)
       {a=a1;b=b1;};
}
class ComputeExpChild extend ComputeExp{
    boolean compute() {return true;};
}
public class ComputeFactory{
    ComputeExp createClass(boolean a1, boolean b1){
       if (a1==true) return new ComputeExpChild(a1,b1);
    else return new ComputeExp(a1,b1);
    }
}
    这段程序应该不再需要什么讲解了吧,简单明了,但是确实揭示了工厂方法模式的
一个很重要的应用。需要说明的是,这儿应用的实际上是工厂方法模式的一个变体。可
以注意到,我并没有声明一个抽象的超类,而是用其中的一个较为普通的类作为另外一
个类的父类。这其实同标准的工厂方法并没有什么不同,毕竟,这些类都有一个公用的
接口——这才是工厂方法的精髓所在。
    当然,这个问题完全没有必要搞的如此复杂,这儿用这个例子,只是想说明工厂方
法的另外的应用。也可以说明,并不是所有的问题背景都是明显的,对模式的选择和应
用,也需要一定的知识和经验。因而模式并不是万能的,它运用的好坏,还是要取决于
施用者对问题的理解程度。
    上面对设计模式作了一个简要的介绍,相信大家都用该对其有了一些概念了吧。OK
,热身完毕,下一篇我们将进入正题,探讨在Java中设计模式的应用。


关于我们 | 站点地图 | 免责声明 | 联系我们 | ©2003-2007 Lough.com.cn 京ICP备06060948号