![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
设计模式简介,参考于http://c.biancheng.net/design_pattern和https://refactoringguru.cn/design-patterns
CJ-小门
从入门到放弃
展开
-
单例模式
未完待续工厂方法模式 工厂方法模式 在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 模式结构:原创 2020-11-18 19:01:08 · 72 阅读 · 0 评论 -
工厂模式
工厂模式 简单工厂模式 工厂方法模式 抽象工厂模式 在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。 模式结构:原创 2020-12-12 20:55:22 · 61 阅读 · 0 评论 -
建造者模式
建造者模式建造者模式应用场景模式结构实现方式 建造者模式 将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。 优点: 封装性好,构建和表示分离。 扩展性好,各个具体的建造者相互独立,有利于系统的解耦。 客户端不必知道产品内部组成的细节,建造者可以对创建过程逐步细化,而不对其它模块产生任何影响,便于控制细节风险。 缺点: 产品的组成部分必须相同,这限制了其使用范围。 如果产品的内部变化复杂,如果产品内部发生变化,则建造者也要同步修改,后期维护成本较大。 应用场景 建造者模式唯一区别于工厂模式原创 2020-12-13 00:17:07 · 85 阅读 · 0 评论 -
原型模式
原型模式原型模式应用场景模式结构实现方式 原型模式 用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。 优点: Java 自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。 可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用(例如恢复到历史某一状态),可辅助实现撤销操作。 缺点: 需要为每一个类都配置一个 clone 方法 clone 方法位于类的内部,当对已有类进原创 2020-12-13 16:08:24 · 60 阅读 · 0 评论 -
适配器模式
适配器模式适配器模式应用场景模式结构实现方式 适配器模式 将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 优点: 客户端通过适配器可以透明地调用目标接口。 复用了现存的类,程序员不需要修改原有代码而重用现有的适配者类。 将目标类和适配者类解耦,解决了目标类和适配者类接口不一致的问题。 在很多业务场景中符合开闭原则。 缺点: 适配器编写过程需要结合业务场景全面考虑,可能会增加系统的复杂性。 增加代码阅读难度,降低代码可读性,过多使用适配器会使系统代码原创 2020-12-13 16:55:16 · 188 阅读 · 0 评论 -
代理模式
代理模式代理模式应用场景模式结构实现方式 代理模式 控制着对于原对象的访问, 并允许在将请求提交给对象前后进行一些处理。 优点: 在客户端与目标对象之间起到一个中介作用和保护目标对象的作用; 代理对象可以扩展目标对象的功能; 客户端与目标对象分离,在一定程度上降低了系统的耦合度,增加了程序的可扩展性 缺点: 代理模式会造成系统设计中类的数量增加 在客户端和目标对象之间增加一个代理对象,会造成请求处理速度变慢; 增加了系统的复杂度; 应用场景 使用代理模式主要有两个目的:一是保护目标对象,二是增强目标原创 2020-12-13 18:13:45 · 130 阅读 · 0 评论 -
桥接模式
桥接模式桥接模式应用场景模式结构实现方式 桥接模式 将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 以组合关系代替继承关系来实现,从而降低了抽象和实现这两个可变维度的耦合度。 优点: 抽象与实现分离,扩展能力强 符合开闭原则 符合合成复用原则 其实现细节对客户透明 缺点:由于聚合关系建立在抽象层,要求开发者针对抽象化进行设计与编程,能正确地识别出系统中两个独立变化的维度,这增加了系统的理解与设计难度。 应用场景 当一个类存在两个独立变化的维度,且这两个维度都需要进行扩展时。 当一个原创 2020-12-13 19:06:29 · 81 阅读 · 0 评论 -
组合模式
组合模式组合模式应用场景模式结构实现方式 组合模式 将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性 优点: 组合模式使得客户端代码可以一致地处理单个对象和组合对象,无须关心自己处理的是单个对象,还是组合对象,这简化了客户端代码; 更容易在组合体内加入新的对象,客户端不会因为加入了新的对象而更改源代码,满足“开闭原则”; 缺点: 设计较复杂,客户端需要花更多时间理清类之间的层次关系; 不容易限制容器中的构件; 不容易用继承的方法来增加构件的新功原创 2020-12-13 19:22:59 · 120 阅读 · 0 评论 -
装饰模式
装饰模式装饰模式二级目录三级目录 装饰模式 二级目录 三级目录原创 2020-12-15 17:47:18 · 75 阅读 · 0 评论 -
外观模式
外观模式外观模式二级目录三级目录 外观模式 二级目录 三级目录原创 2020-12-15 18:22:49 · 93 阅读 · 0 评论 -
享元模式
享元模式享元模式二级目录三级目录 享元模式 二级目录 三级目录原创 2020-12-15 18:44:22 · 94 阅读 · 0 评论 -
责任链模式
这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录原创 2020-12-15 18:55:33 · 77 阅读 · 0 评论 -
观察者模式
观察者模式观察者模式二级目录三级目录 观察者模式 二级目录 三级目录原创 2020-12-15 21:30:32 · 66 阅读 · 0 评论 -
策略模式
策略模式策略模式应用场景模式结构实现方式 策略模式 应用场景 模式结构 实现方式原创 2020-12-15 21:10:38 · 67 阅读 · 0 评论 -
状态模式
状态模式状态模式应用场景模式结构实现方式 状态模式 应用场景 模式结构 实现方式原创 2020-12-15 21:24:54 · 59 阅读 · 0 评论 -
迭代器模式
这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录原创 2020-12-15 20:49:01 · 100 阅读 · 0 评论 -
中介者模式
这里写目录标题一级目录二级目录三级目录 一级目录 二级目录 三级目录原创 2020-12-15 20:55:12 · 68 阅读 · 0 评论