重新温习GOF23到第18个中介者模式了,感觉还是蛮不错的,写了一个小小的Demo来解释下他们之间的关系。
中介者模式其实就相当于:中介,租房人,还有房主三者之间的关系。
房主A,租房人B首先联系了中介,在中介那里记名字了。
房主A有空房了,发条消息给中介,中介将A有空房的消息发给其他人。
在此之上,demo做了小小扩充,当又有租房人C联系中介,B发了条消息,A与C都会收到B的消息。
#...
分类:
其他好文 时间:
2014-12-05 09:21:35
阅读次数:
220
最近这些天在重温设计模式GOF23,偶然想到友元,不使用都快忘了
今天重温一下C++友元知识,学了之后几乎就没怎么用到,几乎都是与设计模式打交道的。
虽然说友元能提高效率,表达清晰,但是破坏了类的封装机制,所以一般情况下不建议使用友元,
友元类简单demo:
// 类A,希望把私有成员公开给类B
class A
{
friend class B;// 把B设置为友元类
public...
分类:
编程语言 时间:
2014-12-04 08:51:54
阅读次数:
163
本节内容引入立即加载实例分析1.一对多关系实例2.多对多关系实例结语引入通过上一篇的介绍,我们知道了NHibernate中默认的加载机制——延迟加载。其本质就是使用GoF23中代理模式实现,这节我们简单分析NHibernate另一种加载机制——立即加载。我用一张图片形象的展现立即加载机制。立即加载顾...
分类:
系统相关 时间:
2014-09-21 18:37:31
阅读次数:
382
一、结构型模式结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy...
分类:
其他好文 时间:
2014-09-14 17:53:37
阅读次数:
236
设计模式总结——程序员的武功秘籍(上)介绍了设计模式产生的原因及其必要性。
那设计模式有什么具体内容呢?首先设计模式作为面向对象发展的产物,它需要面向对象基础,包括一些重要的概念啊、三大特性什么的。其次,根据面向对象思想,结合解决问题的实际情况衍生了五大原则。最后就是利用面向对象的基础和五大原则,总结出的GOF23.
用一张图来表示就是:
设计模式会贯...
分类:
其他好文 时间:
2014-07-31 21:02:37
阅读次数:
172
策略模式(Strategy),定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。本模式使得算法的变化可独立于使用它的客户。
package gof23;
public class StrategyTest {
public static void main(String[] args) {
CashContext cc = null;
cc = new CashConte...
分类:
其他好文 时间:
2014-07-24 23:35:03
阅读次数:
226
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
单例模式因为Singleton类封装它的唯一实例,这样它可以严格地控制客户怎样访问它以及何时访问它。简单地说就是对唯一实例的受控访问。
package gof23;
public class SingletonTest {
public static void main(String[] args) {...
分类:
其他好文 时间:
2014-07-24 17:40:06
阅读次数:
169
简单工厂模式(Factory Method):定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。
package gof23;
public class SimpleFactoryTest {
public static void main(String[] args) {
Operation oper = null;
...
分类:
其他好文 时间:
2014-07-24 17:36:46
阅读次数:
223
GOF23种设计模式设计原则:1. 单一职责原则(SRP):就一个类而言,应该仅有一个引起它变化的原因2. 开放-封闭原则(OCP):软件实体(类、模块、函数等)应该可以扩展,但是不可修改。即对于扩展是开放的, 对于修改是封闭的。3. 依赖倒转原则: A. 高层模块不应该依赖低层模块,两个都应该依赖...
分类:
移动开发 时间:
2014-07-07 09:00:55
阅读次数:
191
1,定义
Gof23设计模式中是这样定义桥接设计模式:桥接模式的目的是把抽象层次结构从其实现中分离出来,使其能够独立变更。抽象层定义了供客户端使用的上层的抽象接口。实现层次结构定义了供抽象层次使用的底层接口。实现类的引用被封装于抽象类的实例中时,桥接就形成了。
我们用一个游戏的例子去理解这个桥接模式,比如,我们假如魂斗罗一代,魂斗罗二代界面没多大变化,可以共用一套底层接口。
上面这个...
分类:
其他好文 时间:
2014-05-21 15:03:19
阅读次数:
260