设计模式
haimian520
2017 BOC
2018-至今 事业单位
展开
-
工厂模式
工厂模式鸭子披萨店翻译 2016-10-02 23:30:57 · 567 阅读 · 0 评论 -
单件模式(Sginleton Pattern)
单件模式:用来创建独一无二的,只能有一个实例的对象。 线程池(threadpool)、缓存(cache)、对话框、处理器、注册表对象、日志对象、打印机驱动程序对象、显卡设备驱动程序对象。 单件模式确保一个类之哟一个实例,并提供一个全局访问点。 问题来了(多线程): 线程同步:public class Singleton{ private static翻译 2016-10-04 01:06:22 · 665 阅读 · 0 评论 -
装饰者模式 Decorator Pattern
装饰者模式还是《设计模式解析》这本书的例子比较符合我们的认知。装饰者模式 : 添加新的功能 The Decorator Pattern is another way of wrapping classes. The docorator pattern provides a way of attaching additional responsibilities to an object dyn翻译 2016-04-15 14:50:19 · 551 阅读 · 0 评论 -
命令模式
餐厅工作: 顾客把写好的订单交给女招待 —-> 女招待拿着订单放到柜台上,喊一声:“订单来了” —-> 厨师根据订单准备餐品。 顾客根据他的需要创建(CreateOrder) 一个订单 —-> 女招待取走 (takeOrder)订单 —-> 通知(OrderUp)厨师准备餐品 —-> 厨师根据(指令 / 订单上的内容)烹调,如制作汉堡(makeBurger)、制作奶昔(makeS翻译 2016-10-06 02:19:31 · 443 阅读 · 0 评论 -
模板方法模式Template
模板方法模式 在一个方法中,定义一个算法的骨架,而将一个些步骤延迟到子类中。 模板方法使得子类在不改变算法结构的情况下,重新定义一些算法中的某些步骤。创建一个算法的模板,模板就是一个方法,在方法中将算法定义成一组步骤。其中任何步骤都可以是抽象的,由子类负责实现。 使得 模板方法本身 和 模板中操作的具体实现 解耦。 class CaffeinBeverage{ virtua原创 2016-10-22 10:32:35 · 308 阅读 · 0 评论 -
状态模式
定义一个State接口。在接口内,糖果机每个动作对应一个方法。为机器中的每个状态实现状态类。这些类负责在对应的状态下进行机器的行为。将动作委托到状态类。 状态 描述 NoQuarterState 机器内有糖果,还没投入25分硬币 HasQuarterState 投入25分硬币,进入SoldState SoldState 发放糖果,总数<0进入SoldOutStat翻译 2016-10-11 16:08:03 · 382 阅读 · 0 评论 -
Facade模式
Facade模式 为子系统中的一组接口提供一个统一的接口。Facade模式定义了一个更高层的接口,使子系统更加容易使用。 —— [ 设计模式解析] 如:以二维的方式使用一个三维绘图程序。对于给定的系统,我们只使用它的一个子集(或者是只是用系统的一部分功能)。Facade模式:关键特征 意图 简化原有系统的使用方式,需要定义自己的接口 问题 只需要使用某个翻译 2016-04-10 02:04:42 · 827 阅读 · 0 评论 -
适配器模式(Adapter)
Adapter模式 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使原本由于接口不兼容而不能一起工作的类可以一起工作。[设计模式解析] 即:之前的接口不合适,但是功能是正确的,为了使用这个功能,我们需要为其创建一个新的接口。 策略模式中的鸭子:class Duck{ virtual void quack() = 0; vir原创 2016-10-21 19:03:37 · 707 阅读 · 0 评论 -
策略模式(Strategy Pattern)
现在我们得让鸭子能飞è 在Duck类中加上fly()方法,然后所有鸭子都会继承fly()。 但是,可怕的问题发生了……“橡皮鸭子”在屏幕上飞来飞去,这是你在开玩笑吗? 把“橡皮鸭子”当成一种“特色”, 覆盖父类的fly()方法可是,如果以后我加入诱饵鸭(DecoyDuck) --> 木头假鸭,不会飞也不会叫……翻译 2016-04-11 21:45:50 · 3713 阅读 · 0 评论 -
观察者模式 Observer Pattern
之前总是想写一个程序,大体上是这样的:单服务器,多客户端。服务器上比如说是个房屋价格信息,客户端则是租房子,显示价格。如果现在有特价,怎么客户端怎么实时获取?而且作为客户端,用户定是不止一个,如何通知所有的客户端呢?直到前天才发现,这是另一个模式—-观察者模式中讲解的 内容。在看这个之前已经心中有底了,客户端数目是变化的,可以用向量vector;通知所有客户端,for循环。观察者模式: 定义了对翻译 2016-04-13 15:10:18 · 6801 阅读 · 0 评论 -
迭代器模式iterator pattern
提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。the iterator pattern is a design pattern in which an iterator is used to traverse a container and access the container’s elements. The iterator pattern dec原创 2016-10-31 22:30:26 · 356 阅读 · 0 评论