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