![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
一suo烟雨任平生
这个作者很懒,什么都没留下…
展开
-
设计模式系列之命令模式
定义 命令模式将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。命令模式也支持可撤销的操作。 模式结构 client 负责创建一个ConcreteCommand,并设置接受者 ConcreteCommand 定义了动作和接受者之间的绑定关系 Receiver 接受者,action实现接受者自己的动作 Command 命令对象接口,实现该接口只需要实现 execute() 和 u...原创 2019-12-17 07:24:30 · 113 阅读 · 0 评论 -
设计模式系列之单例模式
定义 单例模式确保一个类只有一个实例,并提供一个全局访问点。 模式结构 uniqueInstance 是一个类变量,持有唯一的单例类的实例 getInstance 是一个静态的,也就是一个类方法,通过这个方法获得单例类的唯一实例,这么做的优点是可以延迟实例化。 模式分析 单例模式,实际上是把某个类设计成自己管理的一个单独实例,同时避免其他类再自行产生实例。要想取得单例实例,必须通过单例类。 提供...原创 2019-12-15 08:28:36 · 66 阅读 · 0 评论 -
设计模式系列之抽象工厂
定义 提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。 模式结构 AbstractFactory 声明一个创建抽象产品对象的操作接口 ConcreteFactory 实现创建具体产品对象的操作 AbstractProduct 为一类产品对象声明一个接口 ConcreteProduct 定义一个被相应的具体工厂创建的产品对象,实现 AbstractProduct 接口 ...原创 2019-12-14 12:52:22 · 75 阅读 · 0 评论 -
设计模式系列之工厂方法模式
定义 工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。 模式结构 Factory 是没有实现工厂方法的抽象类 ConcreteFacroty 只实现工厂方法的具体工厂类 Product 抽象产品 ConcreteProduct 具体产品 模式分析 工厂方法用来处理对象的创建,并将这样的行为封装在子类中。 在超类中,工厂方法是抽象的,因此它依...原创 2019-12-14 09:41:49 · 80 阅读 · 0 评论 -
设计模式系列之简单工厂模式
定义 简单工厂不是严格意义上的设计模式,它比较像是一种编程习惯,将变化的部分进行封装。简单工厂定义一个类来专门创建对象,是的对象的创建和使用分离已达到解耦的目的。 模式结构 Factory是创建对象的工厂,是整个应用中唯一用到具体对象的地方,通常 createProduct 会被声明为静态方法; Client是工厂的客户,可以通过工厂取得实例; Product是工厂的产品,抽象类定义一些通用的实...原创 2019-12-10 08:22:54 · 101 阅读 · 1 评论 -
设计模式系列之装饰者模式
定义 动态的给一个对象添加一些额外的职责,对于扩展功能而言,装饰者提供了比继承更有弹性的设计。 模式结构 模式分析 代码实现 适用性原创 2019-11-27 07:41:01 · 64 阅读 · 0 评论 -
设计模式系列之观察者模式
定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 模式结构 模式分析 Subject 主题可以有任意多个观察者,提供主题和删除接口,并保持它们的引用。 Observer 观察者定义统一的更新接口。 当主题的状态发生改变时,想所有观察者发出通知并更新。 代码实现(python) class Subject(object): ...原创 2019-11-26 00:26:11 · 84 阅读 · 0 评论 -
设计模式系列之策略模式
前言 在软件开发的过程中,完成一项任务,往往可以用多种不同的方式,每一种方式就是一种策略,我们选择不同的策略来完成任务;在某些情况下,需要提供多种策略,比如提供多种排序算法;提供多种策略的方式可以是以硬编码的方式,即在代码中通过条件判断,这样的方式容易使得我们的代码变得臃肿,维护起来也异常困难;另一种方式是将算法封装成一个类,由客户端去选择想要执行的类。 定义 策略模式是一种行为型设计模式,策略模...原创 2019-11-22 08:33:50 · 79 阅读 · 0 评论