设计模式笔记(11)—外观模式(结构型)
Gof定义为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 先来看个小例子,假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等...
Gof定义为子系统中的一组接口提供一个一致的界面,Façade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 先来看个小例子,假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等...
Gof定义动态地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。 首先来看一个小例子,假如我们需要给游戏开发一种坦克,除了各种不同型号的坦克外,还希望在不同的场合来给坦克增加以下的一种或多种功能:比如红外线夜视...
Gof定义将对象组合成树形结构以表示“部分–整体”的层次结构。Composite使得用户对单个对象和组合对象使用具有一致性。 在面向对象系统中,我们经常会遇到一类具有”容器“特征的对象—即他们在充当对象的同时,又是其他对象的容器。比如在一些管理系统中...
Gof定义将抽象部分与实现部分分离,使他们都可以独立地变化。 先来看一个简单的例子,假设我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上的功能都一样,有同样的类型,有同样的功能需求变化,而这些游戏中的坦克有多种不同的型号:T50 T6...
Gof定义将一个类的接口转换成客户所希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 动机在软件系统中,由于应用环境的变化,常常要将“一些现存的对象”放在心的环境中应用,但是新环境要求的接口是这些现存对象所不满足...
Gof定义使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。 动机在软件系统中,经常面临着“某些结构复杂的对象”的创建工作,但由于需求的变化,这些对象将成面临着剧烈的变化,但他们拥有比较稳定一致的接口。 假设在一些打斗游戏场景中,有...
Gof定义定义一种用于创建对象的借口,让子类决定实例化哪一个类,Factory Method使得一个类的实例化延迟到子类。 动机在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却拥有比较稳定的借口。...
Gof定义将一个复杂对象的构建与其表示相分离,使其同样的构建过程可以创建不同的表示。 动机在软件系统中,有时侯面临着一个复杂对象的创建工作,这个发展对象通常是由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂的对象的各个部分经常面临着巨大的...
Gof定义提供一个借口,让该接口负责创建一系列_相关或者相互依赖的对象_,无需指定他们具体的类。 动机在软件系统中经常面临着_一系列相互依赖的对象_的创建的工作,同时由于需求的变化,往往存在着更对系列对象的创建。 常规的对象创建的方法,直接使用new...
Gof 定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。 动机保证在系统中只存在一个实例,这样才能保证逻辑的正确性和良好的效率。 单件模式单线程环境下实现看下面一段代码: 1234567891011121314151617public cl...