最近看完《大话设计模式》,又结合了一些其他资料,总结成表格。
一 设计模式
1设计模式之间的关系:
2设计模式总概况:
3设计模式对比
二设计原则:
1单一职责原则
就一个类而言, 应该仅有一个引起它变化的原因。
是如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。软件...
分类:
其他好文 时间:
2015-04-21 18:06:50
阅读次数:
101
声明:本系列博客参考资料《大话设计模式》,作者程杰。
前面我们介绍了简单工厂和工厂方法设计模式,今天我们学习最后一个工厂——抽象工厂。
案例:追MM少不了请吃饭了,去麦当劳,只管向服务员说“两个B套餐”就行了。麦当劳就是B套餐的AbstractFactory,B套餐里含有汉堡, 鸡翅和饮料. 麦当劳或肯德基会根据B套餐的规格, 让汉堡Fact...
分类:
Web程序 时间:
2015-04-19 19:31:46
阅读次数:
147
转载http://blog.csdn.net/wuzhekai1985/article/details/6667467 建造者模式的定义将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示(DP)。《大话设计模式》举了一个很好的例子——建造小人,一共需建造6个部分,头部、身体、左...
分类:
其他好文 时间:
2015-04-17 13:27:17
阅读次数:
120
声明:本系列博客参考资料《大话设计模式》,作者程杰。
前面我们介绍了简单工厂,今天我们继续学习另外一个工厂——工厂方法。
具体案例:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我们一般采用FactoryMethod模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员...
分类:
Web程序 时间:
2015-04-16 23:47:53
阅读次数:
188
// 111.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include #include using namespace std;class Person{private: string m_strName;public: Person(string str...
分类:
其他好文 时间:
2015-04-14 15:58:33
阅读次数:
133
将其java代码转化为Cpp 代码。#include #include using namespace std;void func1(){ cout > numberA; cout > operate; cout > numberB; switch (operate) { case'+': cou....
分类:
其他好文 时间:
2015-04-12 19:05:37
阅读次数:
123
从本篇博文讲述23中设计模式,对每种设计模式给出实例代码。本篇博文最后都会给出代码下载地址。
本博文的参考书是《设计模式之禅》和《大话设计模式》这两本书。
但是《大话设计模式》一书并不是使用java语言编写的,所以对于初级Java或者有一定java基础的人看起来并不直观,特别是对于没有设计模式概念的同学看起来有点费劲,还有一个不好的地方是里面的每种模式的讲述都是基于一定的情景下讲述的,还有大鸟和...
分类:
其他好文 时间:
2015-04-12 16:17:41
阅读次数:
149
迭代器模式 定义参考 wiki:Iterator pattern 迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集合内部的数据。 ------- 节选自 《大话设计模式》P207 我们可以将迭代器模式抽离出几个...
分类:
Web程序 时间:
2015-04-11 06:32:08
阅读次数:
181
声明:本系列博客参考资料《大话设计模式》,作者程杰。
前面两节内容介绍了什么是设计模式以及六大原则,相信看完前两节内容大家对设计模式已经有了初步的认识,接下来说一下设计模式的分类。
一般将面向对象设计模式分为三类:创建型、结构型、行为型三种。
创建型:创建对象时,不再由我们直接实例化对象;而是根据特定场景,由程序来确定创...
分类:
Web程序 时间:
2015-04-09 23:49:48
阅读次数:
254
声明:本系列博客参考资料《大话设计模式》,作者程杰。
一般认为遵从以下六大原则的代码是易扩展可复用的代码:
这六大原则任何面向对象的语言都应该遵守的,要想让你的代码易扩展高服用就尽量去满足这六大原则吧,不一定严格按照某种设计模式,但是如果你的代码符合这六大原...
分类:
Web程序 时间:
2015-04-07 00:46:31
阅读次数:
187