
Design Patterns
文章平均质量分 80
ryanloucc
这个作者很懒,什么都没留下…
展开
-
Head First Design Patterns 阅读笔记之五: Singleton Pattern
为什么需要 Singleton Pattern 一般来说,我们需要某个对象时,就使用 new 操作。在管理资源池的情况下,比如连接控制器或者线程池或者登记信息,需要保证在任何时候只有一个实例,这就需要 Singleton Pattern。Sinleton Pattern 的核心在于没有 public constructor。原创 2016-09-24 16:33:23 · 290 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之六: Command Pattern
从一个远程控制系统开始假设我们要做一个远程控制系统,远端可以控制电灯、电子门的开关。远端并不需要知道具体的开关细节,用户只是按下按钮就可以控制电灯、电子门。显然,我们需要使用一种能够将方法调用封装起来的设计模式——Command Pattern。对于上面的需求,可以写下这样一个程序:public interface Command { public void execute(); }pu原创 2016-09-26 13:15:02 · 428 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之七: Adapter and Facade Pattern
Adapter Pattern下面是一个完整的适配器模式实例public interface Duck { public void quack(); public void fly(); }public class MallardDuck implements Duck { public void quack() { System.out.原创 2016-10-09 16:56:02 · 533 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之八: the Template Method Pattern
这一模式的正式定义为: The Template Method Pattern defines the skeleton of an algorithm in a method, deferring some steps to subclasses. Template Method lets subclasses redefine certain steps of an algorithm wi原创 2016-10-13 15:57:41 · 638 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之一: Strategy Pattern
本系列的所有代码参见 Head First Design Patterns—Github以 SimUDuck app 这个案例开始假设有为一家以制作鸭子池塘模拟游戏而闻名的公司,这家公司的得意之作是 SimUDuck。这个游戏可以模拟多种不同的鸭子的游泳姿态及其叫声。系统最初采用标准的面向对象设计原则,创建一个鸭子超类让所有子类继承。现在,公司 CEO 决定增加一个特征:让鸭子飞起来。作为一个面向对原创 2016-08-25 10:59:12 · 609 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之二: Observer Pattern
从一款天气预报 APP 开始假设现在需要编写一款 APP,可以显示感应器传来的当前天气条件(温度、湿度、气压),报告当前的天气状况统计数据并做简单的预测。现在已知以下条件: WeatherData 类有三个 getter 方法来获取当前的数据:getTemperature()、getHumidity()、getPressure()。 WeatherData 类中有一个方法 measurementsC原创 2016-08-30 15:37:39 · 529 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之三: Decorator Pattern
欢迎来到 Starbuzz Coffee星巴克作为一家扩展最快的咖啡店,它们现在需要更新饮料订购系统以便满足现在庞大的需求。这个订购系统的第一版如下: 显然这对于日后的维护来说,完全是个噩梦。这里需要提到一个设计原则(Open-Closed Principles): 类应当对扩展开放,对修改封闭 Classes should be open for extension, but clos原创 2016-09-03 13:41:05 · 504 阅读 · 0 评论 -
Head First Design Patterns 阅读笔记之四: Factory Pattern
new 的问题每当你使用 new 实例化一个具体的类时,那这就是一种实现而不是接口,而具体的实现会导致代码脆弱并且不灵活。 从技术上说,new 没有问题。问题在于需求不断变化,而这些变化又会影响 new 的使用。所以该如何解决问题呢?以 Pizza 店为例假设你有一家 pizza 店,你有很多种 pizza,可能就会写下这样的代码:Pizza orderPizza(String type) {原创 2016-09-05 14:05:48 · 433 阅读 · 0 评论