迪米特法则(最少知识原则):如果两个类不必彼此直接通信,那么两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
(1),在类的结构设计上,每一个类都应当尽量降低成员的访问权限。
(2),迪米特法则的根本思想是强调了类的松耦合。
(3),类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成影响。
...
分类:
编程语言 时间:
2014-07-26 02:09:56
阅读次数:
293
构造型模式中的适配器模式、外观模式、装饰模式、代理模式都属于包装模式,都是对另外的类或对象的包装,只是各自的意图不同。
适配器模式通过对另外的类或对象的包装,将其接口转换为用户期望的接口,达到接口的适配的目的。
外观模式是对包装的一组类或对象提供一个高层接口,意图是简化接口,使系统更加容易使用。
装饰模式的意图是在不改变包装...
分类:
移动开发 时间:
2014-07-24 23:21:24
阅读次数:
304
外观(Facade)模式: 外部与一个子系统的通信必须通过一个统一的门面(Facade)对象进行。外观模式的结构:门面(Facade): 客户端可以调用这个角色的方法。此角色知晓相关的(一个或者多个)子系统的功能和责任。在正常情况下,本角色会将所有从客户端发来的请求委派到相应的子系统去。子系统(.....
分类:
其他好文 时间:
2014-07-24 17:31:38
阅读次数:
197
外观模式:它为子系统中的一组接口提供一个统一的高层接口,使得子系统更容易使用。这其实就是一个分层的思想,将较低层复杂的操作交由较高层同一管理,并向用户程序提供简单易用的接口。下面是一个用C++编写的外观模式的例子。
#include
#include
using namespace std;
// 键盘类
class Keyboard {
public:
string Typ...
分类:
其他好文 时间:
2014-07-23 22:32:52
阅读次数:
234
外观模式,该模式会触发一系列的私有行为,但用户不会接触到,我们让facade编程一个不需要关注实现细节,而且更容易使用的一个特性
分类:
其他好文 时间:
2014-07-18 15:33:10
阅读次数:
161
在我们学习程序设计时常常会用到模块化设计的思想,这一思想是我们首先把要实现的功能用一个模块表示,当用户想完成某个人物时依次调用对应的函数。然而,如果用户要完成一个很大的任务,则需要调用很大模块函数,这样用户与各个模块打交道就非常频繁了,同时也很容易出错,因为用户与某个具体模块打交道,耦合度相对比较高。而外观模式(Facade)就在此时可以派上用场了。...
分类:
编程语言 时间:
2014-07-18 11:23:38
阅读次数:
261
1.什么是外观模式为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用2.为什么要使用外观模式在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,从而导致客户程序随着子系统的变化而变化,那么如何简化客户程序与子系统之间的交互接...
分类:
其他好文 时间:
2014-07-16 22:52:38
阅读次数:
141
设计模式的另一大类型为结构型。共收录了7个模式,分别为适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。下面从特点和使用两方面小探,欢迎交流!
适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。[大话设计模式]
特点:需要交流的两方,在数据和行...
分类:
其他好文 时间:
2014-07-15 22:17:45
阅读次数:
241
(九)外观模式
外观模式为子系统提供一个接口,便于使用。解决了类与类之间关系的,外观模式将类之间的关系放在一个 Facade 类中,降低了类类之间的耦合度,该模式不涉及接口。
(十)桥梁模式 Bridge
桥梁模式就是吧事物和具体的实现分开,将抽象与抽象方法的实现相互分离来实现解耦,以便两者能够相互独立的变化。...
分类:
编程语言 时间:
2014-07-12 23:57:16
阅读次数:
412
本文介绍7种结构型模式里的剩下两种:享元模式、代理模式。一、享元模式FlyWeight 享元模式比较简单且重要,在很多场合都被用到,只不过封装起来了用户看不到。其概念:运用共享内存技术最大限度的支持大量细粒度的对象。这个概念给的有些抽象,说白了就是如果内存中存在某个对象A,如果再次需要使用对象A的时候如果内存中有A这个对象就直接使用它,不要再次new了。如果没有,则重新new一个。基于这个特点,享...
分类:
编程语言 时间:
2014-07-12 17:27:16
阅读次数:
180