随笔分类 -  设计模式

设计模式
摘要:概述 命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。 在命令模式... 阅读全文
posted @ 2015-10-28 11:14 我爱物联网 阅读(1286) 评论(1) 推荐(3) 编辑
摘要:概述 职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。职责链模式是一种对象行为型模式。 在职责链模式结构图中包含... 阅读全文
posted @ 2015-10-27 11:48 我爱物联网 阅读(1053) 评论(3) 推荐(0) 编辑
摘要:概述 当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。例如在一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占用较多的内存空间,那么我们如何去避免系统中出现大量相同或相似的对象,同时又不影响客户端程序通过面向对象的方式对这些对... 阅读全文
posted @ 2015-10-26 10:56 我爱物联网 阅读(1009) 评论(0) 推荐(0) 编辑
摘要:懒汉,线程不安全public class Singleton { private static Singleton instance; private Singleton (){} public static Singleton getInstance() { ... 阅读全文
posted @ 2015-05-16 11:47 我爱物联网 阅读(650) 评论(1) 推荐(1) 编辑
摘要:观察者模式 Observer观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。观察者模式的组成抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽... 阅读全文
posted @ 2014-09-25 20:20 我爱物联网 阅读(1148) 评论(2) 推荐(2) 编辑
摘要:概述外观模式,我们通过外观的包装,使应用程序只能看到外观对象,而不会看到具体的细节对象,这样无疑会降低应用程序的复杂度,并且提高了程序的可维护性。例子:一个电源总开关可以控制四盏灯、一个风扇、一台空调和一台电视机的启动和关闭。该电源总开关可以同时控制上述所有电器设备,电源总开关即为该系统的外观模式设... 阅读全文
posted @ 2014-08-13 11:13 我爱物联网 阅读(1367) 评论(4) 推荐(0) 编辑
摘要:概述 在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化,那么如何应对这种“多维度的变化”?如何利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?例子:设想如果要绘制... 阅读全文
posted @ 2014-08-12 11:08 我爱物联网 阅读(1076) 评论(5) 推荐(1) 编辑
摘要:概述 在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。例子1:就是多级树形菜单。例子2:文件和文件夹目录将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的... 阅读全文
posted @ 2014-08-11 11:49 我爱物联网 阅读(858) 评论(1) 推荐(0) 编辑
摘要:概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。角色 目标接口(Target... 阅读全文
posted @ 2014-08-10 15:33 我爱物联网 阅读(1283) 评论(3) 推荐(0) 编辑
摘要:概述 为其他对象提供一种代理以控制对这个对象的访问。抽象角色:声明真实对象和代理对象的共同接口;代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,... 阅读全文
posted @ 2014-07-26 13:24 我爱物联网 阅读(939) 评论(3) 推荐(0) 编辑
摘要:概述用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。原型模式属于对象的创建模式。通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象。这就是选型模式的用意。原型模式要求对象实现一个可以“克隆”自身的接口,这样就可以通过复制一个实例对象本身... 阅读全文
posted @ 2014-07-25 21:58 我爱物联网 阅读(902) 评论(2) 推荐(0) 编辑
摘要:概念 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。类图 代码 public abstract class Computer { private String type; private String cpu; private String ram; ... 阅读全文
posted @ 2014-07-25 11:35 我爱物联网 阅读(1170) 评论(2) 推荐(0) 编辑
摘要:抽象工厂(abstractFactory):提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体类。适用场合:1.一个系统要独立于它的产品的创建、组合和表示时。2.一个系统要由多个产品系列中的一个来配置时。3.当你强调一系列相关的产品对象的设计以便进行联合使用时。4.当你提供一个产品类库... 阅读全文
posted @ 2014-07-24 18:20 我爱物联网 阅读(889) 评论(2) 推荐(0) 编辑
摘要:动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。具体被装饰者和抽象装饰类都继承于抽象被装饰者类,继承的是类型,而不是行为。行为来自装饰者和基础组件,或与其他装饰者之间的组合关系。装饰者通常是... 阅读全文
posted @ 2014-07-21 10:39 我爱物联网 阅读(1161) 评论(3) 推荐(0) 编辑
摘要:模板方法模式:定义一个算法的执行骨架,将具体的算法实现延迟到子类完成。模板方法模式需要开发抽象类和具体子类的设计师之间的协作。一个设计师负责给出一个算法的轮廓和骨架,另一些设计师则负责给出这个算法的各个逻辑步骤。代表这些具体逻辑步骤的方法称做基本方法(primitive method);而将这些基本... 阅读全文
posted @ 2014-07-20 19:37 我爱物联网 阅读(744) 评论(0) 推荐(1) 编辑
摘要:简单工厂模式 和 工厂方法模式 的区别简单工厂模式工厂方法模式比较这两个结构图,我们会发现,每个结构图右侧的红色边框内有很大的区别,前者的简单工厂没有子类,只有一些逻辑判断代码;而后者却又重新分出四个具体的工厂。到这里,两种模式的区别之一就出来了。那么,工厂方法模式中的逻辑判断代码在哪里呢?答案是:... 阅读全文
posted @ 2014-07-17 10:19 我爱物联网 阅读(1367) 评论(3) 推荐(0) 编辑
摘要:面向对象设计的基本原则单一职责系统中的每一个对象应该只有一个单独的职责,所有对象关注的应该是自身职责的完成。基本思想:高内聚,低耦合。开闭原则一个对象对扩展开放,对修改关闭。基本思想:对类的改动是通过增加代码进行的,而不是修改现有的代码。里氏替换原则在任意父类出现的地方,都可以使用子类来替代。依赖注... 阅读全文
posted @ 2014-07-16 13:44 我爱物联网 阅读(1269) 评论(8) 推荐(2) 编辑

AmazingCounters.com
点击右上角即可分享
微信分享提示