这三个设计模式都属于创建型模式,之间具有关联性,就放在一起讲解。其实简单工厂模式是工厂方法的一个特例,并不是23种设计模式的一种。
使用java来写的这几个设计模式。java文件目录树如下所示:
zy@zy:~/code/designpattern/SimpleFactory/src$ tree
.
├── Client.java
└── zy
├── abstractfactory
...
分类:
其他好文 时间:
2015-03-05 22:24:12
阅读次数:
231
1. 业务说明为了便于说明,举一个简单的例子。假设现在有一个项目需要建立一个和银行交互的平台,目前只接入工商银行,后续接入其他银行,每个银行的业务都有差异,报文格式可能也不一致。这里只列举几个简要的流程,仅包括拼报文,发送报文,接收报文,解析报文,其余整体架构以及后续处理等内容省略。2. 初步设计创建一个银行交互类 BankOpt,包括四个函数:int setMsg(); //拼报文
i...
分类:
编程语言 时间:
2015-03-05 00:25:12
阅读次数:
220
从现实入手
我想养一些小动物,把他们圈养在一起看着他们长大,我选择猫,狗,羊,鸡这四种动物。
一般思想,无非建立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
简单的工厂模式我的理解,所谓的简单工厂模式就是在客户端中不会直接实例化对象,例如在控制台应用程序中,我们创建了一个public abstract class Food { // 输出点了什么菜 public abstract void Pri...
分类:
其他好文 时间:
2015-03-01 20:54:03
阅读次数:
136
抽象工厂可以创建多个产品类对象,如在种菜工厂中,有种根菜,种茎菜。工厂模式与抽象工厂模式以及简单工厂模式只有在具体应用的时候,分析具体的产品层级,然后选择相应的设计模式。而在没一个层次,种菜工人所关心的对象也不一样,在简单工厂模式下,工人要想到种植萝卜还是白菜,在工厂模式下,工人想到是种植根菜还是茎...
分类:
其他好文 时间:
2015-03-01 13:03:49
阅读次数:
96
简单工厂模式简单工厂模式又称静态工厂方法模式。重命名上就可以看出这个模式一定很简单。它存在的目的很简单:定义一个用于创建对象的接口。先来看看它的组成:1) 工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑。在java中它往往由一个具体类实现。2) 抽象产品角色:它一般是具体产品继承的父类或...
分类:
其他好文 时间:
2015-03-01 10:20:47
阅读次数:
154
??????简单工厂模式解释: 简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其它类的实例,被创建的实例通常都具有共同的父类。简单工厂模式的UML图: 简...
分类:
其他好文 时间:
2015-02-27 21:22:51
阅读次数:
207