
设计模式
墨遥
我思,故我在!
展开
-
Head First设计模式之观察者模式(Observer Pattern)
前言: 这一节开始学习观察者模式,开始讲之前会先像第一节那样通过一个应用场景来引入该模式。具体场景为:气象站提供了一个WeatherData对象,该对象可以追踪获取天气的温度、气压、湿度信息,WeatherData对象会随即更新三个布告板的显示:目前状况(温度、湿度、气压)、气象统计和天气预报。1. 基本需求:利用WeatherData对象获取数据、并更新三个布告板:目前状况、气象统计原创 2016-03-12 23:20:26 · 3043 阅读 · 0 评论 -
Head First 设计模式之策略模式(Strategy Pattern)
前言:刚刚开始学习设计模式,之前也接触过一些,但是从来都没有系统的学过,这次打算好好的学习一下。这里就当是对学习过程的一个记录、整理,以便可以在以后不时的温故知新。这一节采用一个鸭子的示例,层层推进,引入策略模式。具体如下:1. 基本需求:创建有一些特性的鸭子鸭子拥有如下的一些特性:游泳戏水、呱呱叫、外观初步实现鸭子的特性:鸭子超类:public abstract class Duck原创 2016-03-11 11:29:51 · 2757 阅读 · 0 评论 -
Head First设计模式之装饰者模式(Decorator Pattern)
前言: 本节将深度讨论继承滥用问题,将会学到使用对象组合的方式,在运行时装饰类,在不修改任何底层代码的情况下,给对象赋予新的职责。1. 基本需求:咖啡连锁店业务扩张需要重新设计订单系统背景:由于StarBuzz咖啡连锁店业务扩张,准备更新订单系统,以合乎他们的饮料供应要求。他们原来的类设计如下: 用户在购买咖啡的时候,可以能会要原创 2016-03-14 17:19:28 · 2956 阅读 · 2 评论 -
Head First 设计模式之工厂模式(Factory Pattern)
前言: 除了使用new操作符之外,还有更多制造对象的方法。你将了解到实例化这个活动不应该总是公开的进行,也会意识到初始化会造成“耦合”的问题。工厂模式将会从复杂的依赖中帮你脱困。1. 简单的工厂当看到“new”,就会想到“具体”,的确也是在实例化一个具体的类,而不是接口。代码绑着具体的类导致代码更脆弱,更缺乏弹性。当有一群相关的具体类时,通常会有如下代码:Duck duck;If(p原创 2016-12-02 18:46:14 · 2982 阅读 · 0 评论 -
Head First 设计模式之单件模式(Singleton Pattern)
1. 单件模式的经典实现publicclass Singleton { private static SingletonuniqueInstance; private Singleton() { } public static Singleton GetInstance() { if (unique原创 2016-12-05 23:18:10 · 1754 阅读 · 0 评论 -
Head First 设计模式之模板方法模式
前言:本章要深入封装算法,让子类可以在任何时候都可以将自己挂接进运算里,并会引入新的设计原则。1. 现实场景应用现实场景:冲咖啡和冲茶的方式非常相似。快速的搞定冲咖啡和茶的几个类。1.1 冲咖啡类public class Coffee { publicvoid PrepareRecipe() { BoilWater();//烧水原创 2017-01-03 22:43:03 · 2096 阅读 · 0 评论 -
Head First 设计模式之适配器模式与外观模式
Head First 设计模式之适配器模式与外观模式前言:之前讲过装饰者模式,将对象包装起来并赋予新的职责,这一章我们也会将对象进行包装,只不过是让它们看起来不像自己而像是别的东西。这样就可以在设计中将类的接口转化为想要的接口,以实现同的接口,此外还将讲述另一个模式,将对象包装起来以简化接口。1. 适配器简介1.1 面向对象的适配器真实世界的适配器比如位于美式插头和欧式插座之间的交流电适配器。原创 2016-12-28 22:57:44 · 1897 阅读 · 0 评论