![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 67
设计模式学习记录
轩辕龙儿
这个作者很懒,什么都没留下…
展开
-
享元模式
定义 享元模式又称为轻量级模式,是对象池的一种实现,类似于线程池。可以避免不停的创建对象和销毁对象,消耗性能。将多个对同一对象的访问集中起来,不必每次都创建一个单独的对象,只需要拿现成的就好 属于结构型模式 享元模式把一个对象的状态分为内部状态和外部状态,内部状态是不变的,外部状态是变化的 角色 抽象享元角色(Flyweight):享元对象抽象类基类或者接口,同时定义出对象的外部状态和内部状态的接口或实现 具体享元角色(ConcreteFlyweight):实现抽象角色定义的业务 享元工厂(Flyweigh原创 2021-04-04 07:40:42 · 123 阅读 · 0 评论 -
适配器模式
适配器模式定义适用场景优点缺点角色类适配器类图代码对象适配器类图代码接口适配器类图代码 定义 适配器模式又叫做变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起构造 属于结构型设计模式 适用场景 已经存在的类,他的方法和需求不匹配(方法结果相同或相似)的情况 适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案 优点 能提高类的透明性和复用,现有的类复用但不需要原创 2021-03-29 21:38:13 · 96 阅读 · 0 评论 -
代理模式
代理模式定义三种角色适用场景静态代理动态代理jdk动态代理的实现原理CGLib和JDK动态代理对比优点缺点静态代理写法类图代码JDK Proxy类图代码CGLib代理类图代码 定义 代理模式是指为其他对象提供一种代理,以控制对这个对象的访问 特点:代理对象在客服端和目标对象之间起到中介作用 属于结构型设计模式 三种角色 抽象主题角色(Subject):抽象主题类的主要职责是声明真实主题与代理的共同接口方法,该类可以是接口也可以是抽象类 真实主题角色(RealSubject):该类也被称为被代理类,该类定义原创 2021-03-26 17:02:24 · 117 阅读 · 0 评论 -
桥接模式
桥接模式定义适用场景优点缺点通用写法类图代码 定义 桥接模式也称为桥梁模式、接口模式或柄体模式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化 通过组合的方式建立两个类之间的联系,而不是继承 属于结构型模式 适用场景 在抽象和具体实现之间需要增加更多的灵活性的场景 应该类存在两个(或多个)独立变化的维度,而这两个(或多个)维度都需要独立进行扩展 不希望使用继承,或因为多层继承导致系统类的个数剧增 优点 分离抽象部分及其具体实现部分 提高了系统的扩展性 符合开闭原则 符合合成复用原则 缺点原创 2021-03-25 21:49:13 · 61 阅读 · 0 评论 -
建造者模式
建造者模式定义设计中四个角色适用场景优点缺点类图具体代码 定义 建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 特征:用户只需指定需要建造的类型就可以获得对象,建造过程及细节不需要了解 属于创建型模式 设计中四个角色 产品(Product):要创建的产品类对象 建造者抽象(Builder):建造者的抽象类,规范产品对象的各个组成部分的构建,一般由子类实现具体的建造过程 建造者(ConcreBuilder):具体的Builder类,根据不同的业务逻辑,具体化对象的各个组原创 2021-03-23 23:13:51 · 83 阅读 · 0 评论 -
原型模式
原型模式定义适用场景浅克隆深克隆优点缺点实例类图代码实例 定义 原型模式时指原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 调用者不需要战队创建细节,不调用构造函数 属于创建型模式 适用场景 类初始化消耗资源较多 new产生的一个对象需要非常繁琐的过程(数据准备、访问权限等) 构造函数比较复杂 循环体中生成大量对象时 浅克隆 只是完整的复制了值类型数据,没有赋值引用对象。换言之,所有的引用对象依然指向原来的对象 深克隆 完整的复制了值类型数据和引用对象 优点 性能优良,Java自带的原创 2021-03-22 23:18:21 · 83 阅读 · 0 评论 -
单例模式
单例模式定义适用场景饿汉式单例模式定义优点缺点标准写法静态代码块写法懒汉式单例模式定义标准写法优点缺点代码双重判断加锁写法优点缺点代码内部静态类写法优点缺点代码注册单例模式定义枚举式单例模式优点缺点代码容器式单例模式优点缺点代码序列化单例模式线程单例模式 定义 单例模式(singleton pattern)是指确保一个类在任何情况下都绝对只有一个实例,并提供一个全局访问点 隐藏其所有的构造方法 属于创建型模式 适用场景 ServletContext ServletConfig ApplicationC原创 2021-03-18 00:31:50 · 107 阅读 · 0 评论 -
三种工厂模式介绍
三种工厂模式简单工厂模式定义适用场景优点缺点类图相关代码工厂方法模式定义适用场景优点缺点类图相关代码抽象工厂模式定义适用场景优点缺点类图相关代码 简单工厂模式 定义 简单工厂模式(Simple Factory Pattern)是指由一个工厂对象决定创建出哪一种产品类的实例 属于创建型模式,但它不属于GOF23种设计模式 适用场景 工厂类负责创建的对象较少 客户端只需要传入工厂类的参数,对于如何创建对象的逻辑不需要关心 优点 只需要传入一个正确的参数,就可以获取你所需要的对象,无须知道其创建的细节 缺点原创 2021-03-17 15:35:50 · 1187 阅读 · 0 评论 -
七大软件设计原则
七大软件设计原则1、开闭原则2、依赖倒置原则3、单一职责原则4、接口隔离原则5、迪米特原则6、里氏替换原则7、合成复用原则 1、开闭原则 定义:开闭原则(Open-Closed Principle, OCP)是指一个软件实体如类、模块和函数应该对扩展开放, 对修改关闭。所谓的开闭,也正是对扩展和修改两个行为的一个原则。强调的是用抽象构建框架,用实 现扩展细节。 优点:可以提高软件系统的可复用性及可维护性。 例子:版本更新时,尽可能不修改原有代码,可以用新增功能代码。 2、依赖倒置原则 定义:依赖倒置原则(D原创 2021-03-14 11:30:40 · 90 阅读 · 2 评论