Abstract Factory Design Pattern 就是一般的Factory Design Pattern的进一步设计,增加一个抽象工厂,然后利用这个工厂可以创建不同基类的类。
当我们需要创建更多不同类的时候就可以使用这个设计模式了。
这个设计模式的代码相对会多点,但是其中的思想就是一般Factory Design Pattern,然后集合更多的基类,看起来挺大的一个设计模式,其思...
分类:
其他好文 时间:
2014-08-02 18:24:53
阅读次数:
250
桥设计模式其实就是一个简单的has a relationship,就是一个类拥有另一个类,并使用另一个类实现需要的功能。
比如遥控器和电视之间可以使用桥设计模式达到可以使用同一个遥控器控制多台电视机的目的。
这样的设计思想是多种设计模式反反复复使用基本思想。
仔细思考下会发现多种设计模式的底层思想其实是相通的,不过具体实现或者某些细节,应用等有那么一点差别罢了。
下面就实现一个TV和rem...
分类:
其他好文 时间:
2014-07-28 16:25:53
阅读次数:
237
本设计模式就是利用不同的类包起不同的命令,达到使用什么命令就实现什么操作。
也可以进一步利用map和自己喜欢的命令词对接起来。
一个执行类实际上已经包含了所有需要的操作了,如:
class SuperMaker
{
public:
string makeCar()
{
return "Car";
}
string makePlane()
{
return "Plane";
...
分类:
其他好文 时间:
2014-07-27 11:19:32
阅读次数:
202
就是利用一个类来完成多种任务,不用每次都创建一个新类。
个人觉得这个设计模式在C++里面,好像可以就使用一个函数代替,利用反复调用这个函数完成任务和反复利用这个类,好像差不多。
不过既然是一个设计模式,那么就使用类来完成任务。而对于Java来说是不面向过程的,故此就必须使用这个设计模式了。
我这里设计一个仓库来保存这样的类,需要的时候反复取出来使用。
非常简单的设计模式:
#inclu...
分类:
其他好文 时间:
2014-07-26 15:23:52
阅读次数:
174
解析者本身是一个很大的设计模式,重点在于设计这个解析者本身,但是由于解析者本身很难设计,故此完善的解析者模式比较少应用,但是这个设计模式本身的思想却不难。
下面简单实用C++实现一下解析者模式,使用不同的解析者,那么就会对于同样的内容解析出不同的结果。
#include
#include
using namespace std;
class Context
{
public:...
分类:
其他好文 时间:
2014-07-26 02:26:07
阅读次数:
133
访问者设计模式是已经有了一组Person对象了,然后不同的访问者访问这组对象,会有不同效果。
这些访问者实际上就是一个可以让Person对象组执行的动作行为等。
至于这些Person对象是如何执行这些访问者的动作的,那是已经在特定的不同的Person对象中设计好的。
比如我们的访问者也许是一些动作集合的类,如:
class Action
{
public:
string present;...
分类:
其他好文 时间:
2014-07-26 02:11:46
阅读次数:
234
就是设计一个Mediator类,可以处理其他类的关系。
Mediator类:
1 拥有其他所有类的实例对象
2 设置一个接口供其他类使用,其他类也拥有一个Mediator类成员,只需调用这个Mediator接口函数使用,无需自己处理关系。
3 Mediator内部已经设置好各个类的关系了,其他类只要直接使用Mediator处理关系就可以了。
下面是一个聊天室聊天是处理关系的实例程序:...
分类:
其他好文 时间:
2014-07-14 12:49:41
阅读次数:
179
代理设计模式,这个模式很多用于服务器客户端之类的,上网也经常使用代理之类的,想起来感觉是很复杂的,不过这个设置模式本身是很简单的。
就是一个类调用另外一个类的函数,客户调用的是一个类,而实际的工作是由另外一个类做的。
体现这个设计模式的代码:
#include
class RealObj
{
public:
virtual void handleReq() = 0;
};...
分类:
其他好文 时间:
2014-07-13 17:30:48
阅读次数:
188
访问者模式,就是我们已经有一系列的对象了,那么就可以使用一个visitor对象一次性遍历所有的对象,就好像这个visitor访问了所有这些对象一样,所以就叫访问者模式。
实现起来也很简单,就是三个基类,其他类都是这些基类的衍生类。
下面的Action类就是访问者类了,而Person类就是被访问的对象类,而House是一个接待容器,可以接待不同的Action类。
#include
#incl...
分类:
其他好文 时间:
2014-07-12 22:22:16
阅读次数:
205
组合设计模式,就是可以把多个类组合在一个大类中,形成一个树形结构。
#include
#include
#include
using namespace std;
class Coporate
{
protected:
string name;
set coporate;
public:
explicit Coporate(string n = "", string d...
分类:
其他好文 时间:
2014-07-12 19:12:55
阅读次数:
156