这三个设计模式都属于创建型模式,之间具有关联性,就放在一起讲解。其实简单工厂模式是工厂方法的一个特例,并不是23种设计模式的一种。
使用java来写的这几个设计模式。java文件目录树如下所示:
zy@zy:~/code/designpattern/SimpleFactory/src$ tree
.
├── Client.java
└── zy
├── abstractfactory
...
分类:
其他好文 时间:
2015-03-05 22:24:12
阅读次数:
231
单例/单体模式(Singleton)首先,单例模式是对象的创建模式之一,此外还包括工厂模式。单例模式的三个特点:1,该类只有一个实例2,该类自行创建该实例(在该类内部创建自身的实例对象)3,向整个系统公开这个实例接口Java中大概是这个样子class Singleton { //私有,静态的类...
分类:
其他好文 时间:
2015-03-05 12:28:57
阅读次数:
108
1. 业务说明为了便于说明,举一个简单的例子。假设现在有一个项目需要建立一个和银行交互的平台,目前只接入工商银行,后续接入其他银行,每个银行的业务都有差异,报文格式可能也不一致。这里只列举几个简要的流程,仅包括拼报文,发送报文,接收报文,解析报文,其余整体架构以及后续处理等内容省略。2. 初步设计创建一个银行交互类 BankOpt,包括四个函数:int setMsg(); //拼报文
i...
分类:
编程语言 时间:
2015-03-05 00:25:12
阅读次数:
220
/*//工厂模式function createObject(name,age){ var obj = new Object();//新建一个对象 obj.name=name;//新建对象的属性 obj.age=age; obj.run=function(){//新建对象的方法...
分类:
编程语言 时间:
2015-03-05 00:05:30
阅读次数:
259
从现实入手
我想养一些小动物,把他们圈养在一起看着他们长大,我选择猫,狗,羊,鸡这四种动物。
一般思想,无非建立4个动物类,实例化即可,如下:class Dog{
public void shout(){
System.out.prinltn("dog shout");
}
}
class Cat{
public void shout(){...
分类:
其他好文 时间:
2015-03-04 21:11:17
阅读次数:
151
从现实入手还记得前面讲到过的简单工厂模式吗?
在客户端(main中)的时候仍然需要用到AnimalFactory.getAnimale(0) 来对动物种类进行选择,则当新增加动物种类的时候,不得不在原工厂类AnimalFactory 中进行代码的改动,这相当于在后台进行改
动。
现在我们要解决的就是去掉Factory中的switch语句和任何判断的逻辑,仅仅利用继承或者多态在客户端实现对动物的...
分类:
其他好文 时间:
2015-03-04 21:03:47
阅读次数:
153
{ public ProductA createProductA(); public ProductB createProductB();}//抽象产品类Apublic interface AbstractProductA{}//抽象产品类Bpublic interface AbstractPr.....
分类:
其他好文 时间:
2015-03-04 21:02:12
阅读次数:
111
工厂模式 最初在设计模式?一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完...
分类:
Web程序 时间:
2015-03-04 14:50:05
阅读次数:
197
工厂模式有三种方法来实现,一种是通过传入参数的名称来决定创建哪一个产品,这种方法有很大的缺点,就是如果传入的产品名称如果不小心错误的话,就是无法来创建我们想得到的产品的。另一种是方法工厂模式,这种工厂模式中对应每一个产品有一个创建方法,这样创建了工厂实例以后,直接通过工厂实例就可以调用相应的产品的创建方法来创建我们需要的产品。但是这种工厂模式需要创建工厂实例,一个工厂可能使用的地方有很多,一直创建...
分类:
其他好文 时间:
2015-03-04 09:52:42
阅读次数:
120
创建型设计模式
1、单例模式
2、抽象工厂模式
3、工厂方法模式
4、原型模式
5、建造者模式...
分类:
其他好文 时间:
2015-03-03 23:42:45
阅读次数:
146