2018年5月14日

模板方法设计模式

摘要: 模式定义 在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,才重新定义算法中的某些步骤 示例 普通模板设计模式 带钩子的模板设计模式,子类可以重写customerWantsCondiments控制父类模板方法 总结 模板方法定义了算法步骤,将这些 阅读全文

posted @ 2018-05-14 22:37 colinzh 阅读(119) 评论(0) 推荐(0)

2018年5月10日

适配器模式

摘要: 模式定义 将一个类的接口,转换成客户期望的另一个接口。适配器模式让原本接口不兼容的类可以合作无间。 类图 示例 总结 当需要使用一个现有的类,接口并不符合你的需求时,就使用适配器模式 适配器改变接口以符合客户的期望 阅读全文

posted @ 2018-05-10 21:55 colinzh 阅读(106) 评论(0) 推荐(0)

外观模式

摘要: 模式定义 提供了一个统一的接口,用于访问子系统中的一群接口,外观定义了一个高层接口,让子系统更容易使用。 示例 家庭影院看电影涉及到灯,DVD还有屏幕等对象,每个对象中都提供不同的操作该对象的方法。如果使用子对象去实现看电影的操作这样涉及到的对象很多,而且和子对象完全耦合在一起了。所以需要使用外观模 阅读全文

posted @ 2018-05-10 21:55 colinzh 阅读(135) 评论(0) 推荐(0)

2018年5月3日

命令模式

摘要: 模式定义 将“请求”封装成对象,以便使用不同的请求队列或者日志来参数化其他对象。命令模式也支持可撤销的操作 模式类图 示例 遥控器上不同开关控制不同的电器的开关示例,强耦合设计思路遥控器控制类中判断不同开关然后调用不同的电器。这样设计不利于后期的扩展和维护,需要进行解除耦合的操作。当开关按下时其实遥 阅读全文

posted @ 2018-05-03 21:32 colinzh 阅读(138) 评论(0) 推荐(0)

2018年4月26日

单例模式

摘要: 模式定义 确保一个类只有一个示例,并提供一个全局的访问点。 示例 经典模式:多线程问题,多个线程处理时会可能有多个实例,懒汉式 同步锁:每次获取示例时都要加锁,性能上会有影响。只要在第一次创建实例的时候加锁处理即可。懒汉式线程安全 静态加载:如果对象比较大在类加载时就进行初始化,可能影响类的初始化速 阅读全文

posted @ 2018-04-26 23:11 colinzh 阅读(100) 评论(0) 推荐(0)

2018年4月23日

工厂模式

摘要: 简单工厂模式 简单工厂模式其实不是一个模式,反而比较像一个编程习惯。 工厂方法模式 定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 所有子类必须实现Creator抽象类中的factoryMethod方法,ConcreteCreator负责一个或多个具体产 阅读全文

posted @ 2018-04-23 22:47 colinzh 阅读(115) 评论(0) 推荐(0)

2018年4月8日

装饰者模式

摘要: 模式定义 动态的给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比子类更加灵活 类图定义 示例 星巴兹咖啡订单系统,购买咖啡时根据顾客不同的咖啡类型,比如深度烘培或者混合咖啡和不同的原料比如摩卡,豆浆等原料计算咖啡的价格。按照正常思路设计首先有一个饮料的父类,提供cost计算价格的方法,其他 阅读全文

posted @ 2018-04-08 20:53 colinzh 阅读(91) 评论(0) 推荐(0)

2018年3月18日

观察者设计模式

摘要: 模式定义 观察者设计模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时会通知所有的观察者对象使他们能够自动更新自己。 类图定义 示例 气象站的温度,气压等数据变化后要推送到不同的统计面板。这里的主题也就是被观察者就是气象站的各种数据的对象,不同的观察 阅读全文

posted @ 2018-03-18 21:34 colinzh 阅读(149) 评论(0) 推荐(0)

2018年2月26日

策略设计模式

摘要: 模式定义 定义一系列算法,分别封装起来,让它们之间可以呼死去那个替换,此模式让算法变化,不会影响到使用算法的客户 类图定义 示例 示例来自于Head First上的鸭子例子,一个鸭子的系统,系统中会出现不同的鸭子,一边游泳一边叫。绿头鸭子会飞,会游泳,正常呱呱叫,橡皮鸭子不会飞不会游泳吱吱叫。后期可 阅读全文

posted @ 2018-02-26 22:23 colinzh 阅读(206) 评论(0) 推荐(0)

导航