分类: 项目管理
2008-03-27 13:48:19
每个具体工厂类可以生产多种产品.一个具体工厂类对应一个产品族.就比如上面的马例子,再加入一个产品如羊(也有白羊和黑羊这两种具体产品).所以此时的一个具体工厂类就可以用于生产(白马与白羊,或者另外黑马与黑羊).(不过这里有个疑问暂时未解决为什么不是一个具体工厂类直接生产马,一个工厂类生产羊,不过这样好像就是上面的具体工厂模式了).此模式在awt,swing中运用较多,由于java的跨平台,导致各个部件在不同的平台外观不同,所以一个具体类就可以根据平台的不同生产出此平台的产品.
单例模式:
比较直观,就是允许运行时只存在一个实例,将构造函数私有化.不过对于多线程的情况,就需要另外考虑.
方法有线程中的synchronized ,或者直接在类的field直接生产此实例.
builder模式:
一个抽象的builder类,一个具体的builder类(用于生产具体的产品),而用户类中包含一个builder类(抽象),用于产生具体的产品.此时用户不知道具体的产品,他只用到了具体的builder类,对于产品无从了解.
适配器模式:
对于此模式可联想到电源变电器,国内是220V,国外有些110V,所以需要一个电压变换器(就是适配器的作用).java中用到的就是iterator,将以Collection为接口的包装起来,用于依次迭代,循环等.
暂时到这里,下次补充!