![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 92
rgc_520_zyl
这个作者很懒,什么都没留下…
展开
-
简单工厂模式(simple factory)及代码实现
简单工厂模式属于 创建型模式,是用来创建对象的模式,在创建对象时,客户端代码无需知道创建逻辑,只要知道传输什么参数即可实现简单工厂模式思路(按照如下代码示例 思考):我的业务需求有2个,分别为 计算买入手续费,卖出手续费,分析后发现获取 手续费费率 规则 相同,而且 都需要当日净值既然都是 手续费,且有相同部分,便可抽象出 一个 手续费基类,包含买入/卖出相同部分,计算手续费规则不同,则可 让子类实现;在客户端代码 需要计算 买入或卖出手续费 时,无需考虑 手续费相关类的实现细节,只..原创 2020-10-25 18:28:37 · 606 阅读 · 0 评论 -
抽象工厂模式(Abstract Factory)及代码实现
什么是抽象工厂?抽象工厂模式 是在 工厂模式的基础上 对工厂进行抽象一层 ;属于 创建型模式;抽象工厂设计模式是抽象方法的一种泛化。概括来说,一个抽象工厂是(逻辑上的)一组工 厂方法,其中的每个工厂方法负责产生不同种类的对象;现实生活中的例子:汽车制造业应用了抽象工厂的思想。冲压不同汽车模型的部件(可以认为 是 车门工厂、车轮工厂、车篷工厂、挡泥工厂等)所使用的机件是相同的。机件装配起来的模型随时可配置,且易于改变。从下图 我们能看到汽车制造业抽象工厂的一个例子...原创 2020-10-26 20:02:06 · 878 阅读 · 0 评论 -
建造者模式(Builder Design Pattern)及代码实现
什么是 建造者模式?建造者模式将一个复杂对象的构造过程与其表现分离,这样,同一个构造 过程可用于创建多个不同的表现;现实生活中的例子:我去电脑公司要一个定制版本的 电脑 [电脑公司 有一个主管(Director) 和 2个不太熟悉总体组装流程的电脑员工(ConcreteBuilder) ],电脑可以有 鼠标(游戏鼠标,普通鼠标),键盘(机械键盘,普通键盘),触控板,CPU,内存条(4G,8G等等) 等等 不同种类的硬件设备;当我 提供不同需求时,按照步骤定制出不同的电脑; 如 我想...原创 2020-10-27 22:16:04 · 389 阅读 · 0 评论 -
原型模式(Prototype Design Pattern)及代码实现
什么是 原型模式?原型模式 指 把一个通过类 示例化后的 对象作为 原型,对此原型 进行 复制,得到一个新的对象,这个新对象 和原型 的 属性等完全相同,并且 用户 可以在此新对象 基础上 进行改变(新增或修改属性);现实生活中的例子:1.克隆羊 多莉,对 原有 羊 进行克隆 后 得到一个 完全相同的 新对象(多莉);2.书籍的 不同版本; 在第一版书籍 出版后,发现一些问题, 需要出版第二版,这时 作者 不会从头开始 一页一页的 写书等等, 作者会在第一版的 进行克隆 生成 第二版..原创 2020-10-29 18:02:54 · 392 阅读 · 0 评论 -
单例模式(Singleton Design Pattern)及代码实现
什么是 单例模式?顾名思义 单例模式 便是指 一个类在一个运行的程序中只能有一个实例;代码中的例子(何时该使用此模式):程序中 对 某个固定文件的多次读取,可以使用单例模式,这样减少程序IO时间 和 生成新对象的 内存资源占用, 相当于 缓存功能;单例模式 关键的角色:单例 角色: 能创建全局唯一一个实例的类该模式的主要优缺点如下:示例代码部分(多个实现方式)1.通过 metaclass方式实现# -*- coding: utf-8 -*-...原创 2020-11-01 21:07:54 · 473 阅读 · 0 评论 -
适配器模式(Adapter Design Pattern)及代码实现
什么是 适配器模式?适配器模式(Adapter pattern)是一种结构型设计模式,帮助我们实现两个不兼容接口之间 的兼容。首先,解释一下不兼容接口的真正含义。如果我们希望把一个老组件用于一个新系统中, 或者把一个新组件用于一个老系统中,不对代码进行任何修改两者就能够通信的情况很少见。但 又并非总是能修改代码,或因为我们无法访问这些代码(例如,组件以外部库的方式提供),或 因为修改代码本身就不切实际。在这些情况下,我们可以编写一个额外的代码层,该代码层包含 让两个接口之间能够通信需要进行的所有修改。这原创 2020-11-02 18:57:45 · 384 阅读 · 0 评论 -
外观模式(Facade Design Pattern)及代码实现
什么是 外观模式?对客户端 隐藏 复杂系统的内部交互沟通逻辑,只提供简单的 几个接口 供客户端使用,通过这几个接口 实现 复杂系统内部的交互过程; 客户端 不必考虑 系统内部实现逻辑; 即 在已有复杂系统之上实现的一个抽象层;相当于 提供了 一个 访问复杂系统的快捷方式生活中的例子:电脑开机;提供给用户一个 开机按钮即可; 内部 复杂的开机程序启动流程(从cpu,内存,硬盘各个模块进行依次加载等等) 用户不必考虑(对用户隐藏); 用户 网上购物下单; 用户只需点击按钮,并付款; 此..原创 2020-11-04 20:25:46 · 424 阅读 · 0 评论 -
装饰器器模式(Decorator Design Pattern)及代码实现
什么是 装饰器模式?代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:示例代码部分总结:相关链接:原创 2020-11-04 20:26:10 · 297 阅读 · 2 评论 -
享元模式(Flyweight Design Pattern)及代码实现
什么是 享元模式?代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:示例代码部分总结:相关链接:原创 2020-11-08 15:48:21 · 197 阅读 · 0 评论 -
代理模式(Proxy Design Pattern)及代码实现
什么是 代理模式?代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:...原创 2020-11-08 19:31:12 · 320 阅读 · 0 评论 -
桥接模式(Bridge Design Pattern)及代码实现
模式定义:代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:...原创 2020-11-10 19:46:10 · 258 阅读 · 0 评论 -
组合模式(Composite Design Pattern)及代码实现
模式定义:代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:...原创 2020-11-26 22:04:41 · 469 阅读 · 0 评论 -
责任链模式(Chain of Responsibility Design Pattern)及代码实现
模式定义:代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:...原创 2020-11-30 14:30:07 · 264 阅读 · 1 评论 -
命令模式(Command pattern)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-04 15:29:27 · 300 阅读 · 0 评论 -
解释器模式(Interpreter)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-04 19:51:35 · 377 阅读 · 1 评论 -
观察者模式(Observer)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-15 20:42:18 · 761 阅读 · 0 评论 -
状态模式(State)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-23 20:02:22 · 975 阅读 · 0 评论 -
策略模式(Strategy)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-28 20:33:25 · 621 阅读 · 0 评论 -
模板方法模式(Template Method)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-28 21:16:49 · 235 阅读 · 0 评论 -
访问者模式(Visitor)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2020-12-31 18:50:51 · 286 阅读 · 0 评论 -
中介者模式(Mediator)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2021-01-05 22:01:33 · 289 阅读 · 0 评论 -
迭代器模式(Iterator)及代码实现
模式定义:生活中的例子代码中的例子(何时该使用此模式):该模式关键的角色:该模式的主要优缺点如下:和 其他模式 的 比较:示例代码部分总结:相关链接:http://c.biancheng.net/view/1383.htmlhttps://refactoringguru.cn/design-patterns/chain-of-responsibility...原创 2021-08-26 14:31:08 · 313 阅读 · 0 评论 -
备忘录模式(Snapshot)及代码实现
模式定义:代码中的例子:生活中的例子:何时使用此模式:实现方式:该模式关键的角色:该模式的主要优缺点如下:优点:缺点:和 其他模式 的 比较:示例代码部分:总结:相关链接:...原创 2021-01-08 20:10:08 · 453 阅读 · 0 评论