随笔分类 -  设计模式

摘要:六大原则 目录六大原则单一职责原则(类和方法,接口)开闭原则 (扩展开放,修改关闭)里氏替换原则(基类和子类之间的关系)依赖倒置原则(依赖抽象接口,而不是具体对象)接口隔离原则(接口按照功能细分)迪米特法则 (类与类之间的亲疏关系) 单一职责原则(类和方法,接口) 单一职责原则(Single Res 阅读全文
posted @ 2023-09-18 15:54 弘一 阅读(122) 评论(0) 推荐(0)
摘要:[TOC] **定义**:确保某一个类**只有一个实例**, 而且**自行实例化**并**向整个系统提供这个实例**。 #### 优点 - 由于单例模式在内存中只有一个实例, 减少了内存开支, 特别是一个对象需要频繁地创建、 销毁时, 而且创建或销毁时性能又无法优化, 单例模式的优势就非常明显。 - 阅读全文
posted @ 2023-07-25 12:54 弘一 阅读(30) 评论(0) 推荐(0)
摘要:### 命令模式 [TOC] 命令模式是一个**高内聚**的模式,其定义为:**将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请 求排队或者记录请求日志,可以提供命令的撤销和恢复功能**。 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于**行为型模式* 阅读全文
posted @ 2023-07-25 12:53 弘一 阅读(18) 评论(0) 推荐(0)
摘要:### 中介者模式 [TOC] 用一个中介对象封装一系列的对象交互, 中介者使各对象不需要显示地相互作用, 从而使其耦合松散, 而且可以独立地改变它们之间的交互。 #### 优点 减少类之间的依赖,将原有的一对多的依赖变成一对一的依赖,同事类只依赖中介者,减少依赖,降低了类间的耦合。 #### 缺点 阅读全文
posted @ 2023-07-25 12:53 弘一 阅读(18) 评论(0) 推荐(0)
摘要:### 状态模式 [TOC] 当一个对象内在状态改变时允许其改变行为,这个对象看起来像改变了其类。 **状态模式的核心是封装**,状态的变更引起了行为的变更,从外部看起来就好像这个对象 对应的类发生了改变一样。 #### **优点** - 结构清晰。避免了过多的switch...case或者if.. 阅读全文
posted @ 2023-07-25 12:52 弘一 阅读(52) 评论(0) 推荐(0)
摘要:### 组合模式 [TOC] 组合模式(Composite Pattern)也叫合成模式, 有时又叫做部分-整体模式(Part-Whole) ,主要是用来描述部分与整体的关系。 将对象组合成树形结构以表示“部分-整体”的层次结构, 使得用户对单个对象和组合对象的使用具有一致性。 #### 优点 - 阅读全文
posted @ 2023-07-25 12:51 弘一 阅读(27) 评论(0) 推荐(0)
摘要:### 享元模式 享元模式(Flyweight Pattern)是池技术的重要实现方式,其定义如下:Use sharing to support large numbers of fine-grained objects efficiently.(使用共享对象可有效地支持大量的细 粒度的对象。) # 阅读全文
posted @ 2023-07-25 12:50 弘一 阅读(13) 评论(0) 推荐(0)
摘要:### 原型模式 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。 这种类型的设计模式属于**创建型模式**,它提供了一种创建对象的最佳方式之一。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。 #### **优点** - 原型模式是在内存二进制流 阅读全文
posted @ 2023-07-25 12:47 弘一 阅读(25) 评论(0) 推荐(0)
摘要:### 门面模式 门面模式(Facade Pattern) 也叫做外观模式, 是一种比较常用的封装模式 。 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。 门面模式提供一个高层次的接口, 使得子系统更易于使用。 #### 优点 减少系统的相互依赖 ;提高了灵活性 ;提高安全性 。 # 阅读全文
posted @ 2023-07-25 12:47 弘一 阅读(11) 评论(0) 推荐(0)
摘要:### 解释器模式 解释器模式(Interpreter Pattern)是一种按照规定语法进行解析的方案,在现在项目中使 用较少,其定义如下:Given a language, define a representation for its grammar along with an interpr 阅读全文
posted @ 2023-07-25 12:46 弘一 阅读(18) 评论(0) 推荐(0)
摘要:[TOC] 工厂模式分为**简单工厂模式,工厂方法模式,抽象工厂模式**。 ### 简单工厂模式 简单工厂模式的核心是定义一个创建对象的接口,将对象的创建和本身的业务逻辑分离,降低系统的耦合度,使得两个修改起来相对容易些,当以后实现改变时,只需要修改工厂类即可。 #### 类图 ![image](h 阅读全文
posted @ 2023-07-25 12:37 弘一 阅读(21) 评论(0) 推荐(0)
摘要:### 迭代器模式 这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于**行为型模式**。 **思考问题**:如何实现顺序访问且不知道集合底层表示? 例子: - 迭代接口 ```java package org.kouhao.design.patterns.迭代模式; 阅读全文
posted @ 2023-06-25 15:53 弘一 阅读(8) 评论(0) 推荐(0)
摘要:### 模板模式 在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。 它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。 这种类型的设计模式属于**行为型模式**。 **适用场景**:一些固定化流程,比如JdbcTemplate. **思 阅读全文
posted @ 2023-06-25 15:47 弘一 阅读(29) 评论(0) 推荐(0)
摘要:目录概述优点缺点注意事项案例分析责任链模式和建造者模式结合使用 概述 责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。 这种模式给予请求的类型,对请求的发送者和接收者进行解耦。 这种类型的设计模式属于行为型模式。 优点 责任链模式非常显著的 阅读全文
posted @ 2023-06-25 15:47 弘一 阅读(27) 评论(0) 推荐(0)
摘要:[TOC] 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。 这种类型的设计模式属于**创建型模式**,它提供了一种创建对象的最佳方式。 #### 优点 - 封装性 - 建造者独立, 容易扩展 - 便于控制细节风险 #### 使用场景 - 相同的方法, 不 阅读全文
posted @ 2023-06-25 15:47 弘一 阅读(11) 评论(0) 推荐(0)
摘要:### 观察者模式 [TOC] 观察者模式(Observer Pattern) 也叫做发布订阅模式(Publish/subscribe) ,它是一个在项目中经常使用的模式。 定义对象间一种一对多的依赖关系, 使得每当一个对象改变状态, 则所有依赖于它的对象都会得到通知并被自动更新。 **模式类型** 阅读全文
posted @ 2023-06-24 12:19 弘一 阅读(23) 评论(0) 推荐(0)
摘要:[TOC] 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。 (摘自) 这种类型的设计模式属于**行为型模式**。 #### 优点 - 算法可以自由切换 - 避免使用多重条件判断 - 扩展性良好 #### 缺点 - 策略类数量增多 - 所有 阅读全文
posted @ 2023-06-24 12:19 弘一 阅读(26) 评论(0) 推荐(0)
摘要:### 适配器模式 [TOC] 将一个类的接口变换成客户端所期待的另一种接口, 从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 适配器模式是一种结构模式。分为**对象适配器模式**与**类适配器模式**。 #### 优点 - 适配器模式可以让两个没有任何关系的类在一起运行, 只要适配 阅读全文
posted @ 2023-06-20 20:20 弘一 阅读(21) 评论(0) 推荐(0)
摘要:[TOC] 装饰器模式能够实现动态的为对象添加功能,是从一个对象外部来给对象添加功能。与代理模式、桥接模式有相似之处。 #### 优点 - 装饰类和被装饰类可以独立发展, 而不会相互耦合。 - 装饰模式是继承关系的一个替代方案。 - 装饰模式可以动态地扩展一个实现类的功能 。 #### 缺点 对于装 阅读全文
posted @ 2023-06-20 20:20 弘一 阅读(24) 评论(0) 推荐(0)
摘要:### 桥接模式 [TOC] 桥梁模式(Bridge Pattern) 也叫做桥接模式, 是一个比较简单的模式 。 桥接模式是一种结构模式。**桥接模式**遵循了**里氏替换原则**和**依赖倒置原则**,最终实现了**开闭原则**,对修改关闭,对扩展开放 。 **定义**:将抽象和实现解耦, 使得 阅读全文
posted @ 2023-06-20 20:20 弘一 阅读(30) 评论(0) 推荐(0)