设计模式
盐焗咸鱼
这个作者很懒,什么都没留下…
展开
-
Head First 设计模式详解之一:策略模式
本文为Head First设计模式笔记。什么是策略模式策略模式是将应用中实现方法多变的算法独立出来,封装为算法族,通过组合或者其他方式,让算法的调用切换独立于算法的调用者。举个例子我们要设计一个duck鸭子类。我们首先想到设计一个duck基类,然后派生出各种各样的鸭子。class Duck{ virtual void display(); virtual ...原创 2019-06-25 15:29:47 · 207 阅读 · 0 评论 -
Head First 设计模式详解之二:观察者模式
什么是观察者模式对象之间存在一对多的关系,当一个对象状态发生改变时,会通知其他依赖的对象,并使他们自动更新。举个例子我们有一个气象站,并拥有多个种类展示板。当气象站检测到的气象数据发生改变时,展示板也进行相应的改变。我们可以维护一个动态数组,将所有的依赖对象放到里面,状态更新函数update由依赖的类实现。当我们状态发生改变时,只要一一调用数组中的对象的update函数。为此,被依...原创 2019-06-25 21:40:58 · 146 阅读 · 0 评论 -
Head First 设计模式详解之三:装饰者模式
什么是装饰者模式装饰者模式动态地将责任附加到对象上。当需要扩展时,装饰者能提供比继承能有弹性的替代方案。当我们需要动态地添加一些功能时,可以使用装饰者模式。举个例子装饰者模式通过创建一个Component基类,然后让装饰者和被装饰者都继承这个基类。并在装饰者只中声明一哥被装饰者变量,从而识别要装饰的对象,并在自己的方法中,对被装饰者的方法进行功能添加。现在我们有许多种咖啡,需要...原创 2019-06-26 21:48:27 · 216 阅读 · 0 评论 -
Head First 设计模式详解之四:工厂模式
工厂方法模式定义一个创建对象的接口,但是由子类决定实例化的类是哪一个。工厂方法让类的实例化推迟到子类。也就是说,我们从基类Base中派生出对象A和B,并且定义Factory,派生出FactoryA和FaceoryB,分别用来生成对象A和B的实例,FactoryA和FactoryB就仿佛是一个工厂,标准地使A和B实例化。使用者将不用关心对象创建,实现使用者与具体类之间的解耦。举个例子...原创 2019-06-27 21:30:45 · 205 阅读 · 0 评论 -
Head First 设计模式详解之五:单例模式
单例模式确保一个类只有一个实例,并提供一个全局的访问点。单例模式用于全局只需要一个对象的时候,例如线程池,缓存,对话框,注册表等等。单例模式的实现要实现一个单例模式很容易,只需要将构造函数设置为private就可以阻止类的实例化。然后我们创建一个接口,所有对单例模式对象的获取都要通过唯一的获取接口。class Singleton{private: Singleton...原创 2019-06-28 14:28:51 · 328 阅读 · 0 评论