动态的给某些对象添加额外的功能装饰模式装饰模式:动态的给某些对象添加额外的功能什么是装饰模式装饰模式也叫装饰器模式,python中的装饰器就是这种模式的体现,对于一个类,如果要添加一个新功能,除了修改代码外(违反开闭原则),可以使用继承,但通过继承添加新功能并不适合所有场景,如类不可见或不允许继承需要对一批类似的兄弟类添加同一个新功能时,继承会产生大量的子类 ......
315
0
0
2022-11-26
如果某个系统需要不同的算法(如超市收银的优惠算法),那么可以把这些算法独立出来,使之之间可以相互替换,这种模式叫做策略模式策略模式如果某个系统需要不同的算法(如超市收银的优惠算法),那么可以把这些算法独立出来,使之之间可以相互替换,这种模式叫做策略模式,它同样具有三个角色:环境角色:使用策略的类抽象策略角色:策略共有的抽象类或接口具体策略角色:具体的策略的实 ......
310
0
0
2022-11-26
通过传给工厂类的参数的不同,返回不同的对象简单工厂模式简单工厂通过传给工厂类的参数的不同,返回不同的对象,包括三部分组成:具体的”产品“工厂类(实例化并返回”产品“)客户端(使用”产品“)为什么使用简单工厂:”产品“的创建过程可能很复杂,涉及到多个不同类之间的依赖,通过简单工厂将创建过程隐藏在工厂类中,一方面减轻了客户端使用该产品的难度,另一方面也防止了客户 ......
323
0
0
2022-11-26
单一职责,里氏替换,依赖倒置,接口隔离,迪米特法则,开闭原则设计模式的六大原则参考:设计模式六大原则1. 单一职责原则一个类只负责一个明确的功能优点:降低类的复杂度,提高代码可读性和可维护性降低变更时对其他功能的影响2. 里氏替换原则原则一:若 o1 是 C1 的一个实例化对象, o2 是 C2 的一个实例化对象,如果在使用 C1 的程序中将o1 替换为 o ......
374
0
0
2022-11-26
一、开闭原则一般认为最 早提出开闭原则(Open-Close Principle, OCP) 的是伯特兰迈耶。他在1988 年发表的《面向对象软件构造》中给出的。在面向对象编程领域中,开闭原则规定软件中的对象、类、模块和函数对扩展应该是开放的,但对于修改是封闭的。开闭原则的核心思想也可以理解为面向抽象编程。错误示范public interface UserD ......
366
0
0
2022-11-12
相信大家在面试的时候经常会听到这些问题:说说你用过的设计模式有哪些?Spring里面都用到了哪些设计模式?这些问题都是面试高频题,但是想回答的漂亮,属实不易。首先,设计模式有23种之多,光靠背官方给的定义面试官一个问题就能问的哑口无言,其次,就算是有几年开发经验的老鸟,也不一定真正在开发中用过设计模式,面试官只要一提到业务场景,必懵!所以,一条决定出一个设计 ......
301
0
0
2022-11-09
哈喽,大家好,我是一条~国庆正是弯道超车的时候,向大家推荐一本个人觉得写的非常好的书——《redis深度历险 核心原理与应用实践》。我们接着聊设计模式,新同学可以先看一下《23种设计模式的一句话通俗解读》全面的了解一下设计模式,形成一个整体的框架,再逐个击破。今天我们一块看一下简单工厂模式,其实他不属于23种设计模式,但为了更好的理解后面的工厂方法和抽象工厂 ......
297
0
0
2022-11-08
哈喽,大家好,我是一条~之前的《白话设计模式》因为工作被搁置,如今再次启航,并搭配「框架源码解析」一起食用,将理论与实战完美结合。对设计模式不是很熟悉的同学可以先看一下《23种设计模式的一句话通俗解读》,全面的了解一下设计模式,形成一个整体的框架,再逐个击破。上期原型模式发布以后,收到了粉丝的感谢,一条创作的动力更足了。今天我们一块看一下「建造者模式」,同样 ......
292
0
0
2022-11-08