摘要: 一、概述 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 二、解决问题 通常我们需要一个对象的时候,会想到使用new来创建对象 Tea tea = new MilkTea(); //使用了接口,代码更有弹性,体现设计原则“对接口编程,而不是对 阅读全文
posted @ 2016-07-27 00:10 jenkinschan 阅读(2719) 评论(2) 推荐(0) 编辑
摘要: 一、概述 装饰器模式动态地将责任附加到对象上。想要扩展功能,装饰者提供了有别于继承的另一种选择。简单描述就是包装对象,让对象提供新的行为。 二、解决问题 当一个类想要获得一个行为,我们会想到面向对象四大特性之一的继承,继承能够让子类从父类中获得行为,实现很好的代码复用。但这种继承而来的行为是在编译时 阅读全文
posted @ 2016-07-20 22:33 jenkinschan 阅读(1217) 评论(0) 推荐(1) 编辑
摘要: 一、概述 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。观察者模式有时成为发布/订阅模式,就是让多个对象在一个对象的状态改变时被通知到。 二、解决问题 当一个系统有多个类协同工作,如果在一个类中需要知道另外一个类的实现细节才能让系统运转, 阅读全文
posted @ 2016-07-17 22:25 jenkinschan 阅读(816) 评论(0) 推荐(0) 编辑
摘要: 一.设计背景 现实生活中,我们要做一件事情或者完成某项工作,往往有很多种途径。比如我们出游,可以选择坐汽车,坐火车,土豪点的选择是坐飞机。还有我们现在线下的支付方式也有了很多种选择,以前在外面忘了带钱的话可能一瓶水都难以买到,现在只要我们手机在身上,可以用微信或者支付宝。 在软件设计层面,我们把各种 阅读全文
posted @ 2016-07-07 22:56 jenkinschan 阅读(3421) 评论(0) 推荐(0) 编辑