设计模式
文章平均质量分 94
未禾
当有一天,迂迂回回后终于到达了想去的地方,才会惊讶地发现,原来之前所经过的一切,都是通往这里的必经之路,少一步都无法塑造出今天的你。
展开
-
解释器模式【Interpreter Pattern】,什么是解释器模式?作用?优缺点?应用场景?主要角色?
目录什么是解释器模式?解释器模式的作用?解释器模式的优缺点优点(1)易于扩展(2)灵活性高(3)代码清晰缺点(1)性能问题(2)难以维护(3)扩展性受限解释器模式应用场景(1)编译器或解释器开发(2)规则引擎(3)命令执行器(3)正则表达式引擎解释器模式的主要角色?(1)抽象表达式(Abstract Expression)(2)终结符表达式(Terminal Expression)(3)非终结符表达式(Non-Terminal Expression)(4)上下文(Context)原创 2024-09-08 17:02:30 · 1078 阅读 · 0 评论 -
中介者模式【Mediator Pattern】,什么是中介者模式?作用?主要对象?优缺点?应用场景?实现案例?
目录什么是中介者模式?中介者模式的作用?(1)减少对象之间的耦合(2)优化对象通信逻辑(3)提高系统的可扩展性和可维护性中介者模式的主要对象(1)中介者(Mediator)(2)具体中介者(Concrete Mediator)(3)抽象同事类(Colleague)(4)具体同事类(Concrete Colleague)中介者模式的优缺点优点(1)降低耦合度(2)集中控制交互(3)更好的扩展性缺点(1)中介者的复杂性增加(2)可能导致性能问题中介者模式应用场景(1)GUI开发(2)网络协议栈(3)消息中间件。原创 2024-09-08 16:23:20 · 1069 阅读 · 0 评论 -
访问者模式【Visitor Pattern】,什么是访问者模式?作用?主要角色?优缺点?应用场景?访问者模式实现案例?
目录什么是访问者模式?访问者模式的作用?访问者模式的主要角色(1)Visitor(访问者)(2)ConcreteVisitor(具体访问者)(3)Element(元素)(4)ConcreteElement(具体元素)(5)ObjectStructure(对象结构)访问者模式优缺点优点(1)遵循开放-关闭原则(2)简化复杂对象的操作(3)统一操作逻辑缺点(1)难以增加新的元素类型(2)破坏封装性(3)复杂性增加访问者模式应用场景访问者模式实现案例1、定义访问者(Visitor,员工工资、报表)抽象访问者。原创 2024-09-08 01:00:27 · 810 阅读 · 0 评论 -
状态模式【State Pattern】,什么是状态模式?主要角色?主要作用?优缺点?适用场景?状态模式实现案例?
目录什么是状态模式?状态模式主要角色(1)Context(上下文)(2)State(状态)(3)ConcreteState(具体状态)状态模式的主要作用(1)将状态逻辑集中管理(2)避免使用大量的条件判断(3)增加系统的灵活性状态模式的优缺点优点(1)清晰的结构(2)易于扩展(3)减少条件判断缺点(1)类数量增加(2)复杂性状态模式适用场景(1)状态行为变化复杂的对象(2)行为依赖于状态的对象(3)需要在运行时动态改变行为的对象状态模式实现案例1、定义上下文2、状态抽象类(State)原创 2024-09-07 23:38:17 · 902 阅读 · 0 评论 -
备忘录模式【Memento Pattern】,什么是备忘录模式?工作原理?优缺点?主要角色?使用场景?实现案例?
目录什么是备忘录模式?备忘录模式工作原理备忘录模式优缺点优点(1)保持封装性(2)支持撤销/恢复操作(3)灵活性缺点(1)内存开销大(2)管理复杂备忘录模式主要角色(1)备忘录(Memento)(2)原发器(Originator)(3)管理者(Caretaker)备忘录模式使用场景(1)需要保存和恢复对象的历史状态(2)希望不暴露对象的内部状态(3)需要进行事务回滚备忘录模式实现案例(1)备忘录(Memento)(2)文本编辑器(原发器,Originator)原创 2024-09-06 23:54:36 · 634 阅读 · 0 评论 -
命令模式【Command Pattern】,什么是命令模式?作用?优缺点?主要角色?应用场景?实现案例?
目录什么是命令模式?命令模式的作用(1)解耦调用者和接收者(2)延迟执行和记录日志(3)支持撤销和重做(4)增加灵活性命令模式优缺点优点(1)降低耦合性(2)扩展性强(3)支持撤销与重做(4)组合复杂操作缺点(1)命令类数量增加(2)实现成本较高命令模式的主要角色(1)命令接口(Command)(2)具体命令类(ConcreteCommand)(3)调用者(Invoker)(4)接收者(Receiver)(5)客户端(Client)角色之间的关系示例关系图命令模式应用场景(1)GUI按钮与菜单操作。原创 2024-09-06 23:23:07 · 778 阅读 · 0 评论 -
责任链模式【Chain of Responsibility Pattern】,什么是责任链模式?核心思想?结构?作用?优缺点?实现案例?
目录什么是责任链模式?责任链模式的核心思想责任链模式的结构(1)抽象处理者(Handler)(2)具体处理者(ConcreteHandler)(3)客户端(Client)责任链模式的UML类图责任链模式的作用(1)解耦请求的发送者与接收者(2)灵活地分配职责(3)请求的链式传递责任链模式的优缺点优点(1)降低耦合度(2)增强系统的灵活性(3)符合单一职责原则缺点(1)可能导致请求无法处理(2)调试困难(3)性能开销责任链模式的应用场景(1)审批流程(2)事件处理机制(3)日志处理(4)Web请求处理。原创 2024-09-06 16:10:46 · 813 阅读 · 0 评论 -
迭代器模式【Iterator Pattern】,什么是迭代器模式?作用?优缺点?应用场景?典型应用?实现案例?
目录什么是迭代器模式(Iterator Pattern)?迭代器模式核心思想迭代器模式结构(1)迭代器接口(Iterator)(2)具体迭代器(Concrete Iterator)(3)聚合接口(Aggregate)(4)具体聚合(Concrete Aggregate)迭代器模式的作用(1)简化集合遍历(2)解耦遍历算法和集合(3)统一访问方式迭代器模式的优缺点优点(1)遍历过程封装:迭代器封装了遍历集合的逻辑,简化了集合的访问操作,并且提供了一个统一的访问接口。(2)解耦遍历算法与集合对象。原创 2024-09-06 15:04:15 · 1006 阅读 · 0 评论 -
观察者模式【Observer Pattern】,什么是观察者模式?作用?优缺点?观察者模式实现?
目录什么是观察者模式?观察者模式作用?观察者模式优缺点优点缺点观察者模式包含角色(1)抽象主题 (Subject)(2)具体主题 (Concrete Subject)(3)抽象观察者 (Observer)(4)具体观察者 (Concrete Observer)观察者模式实现方式观察者模式实现1、实现Observable(被观察者)2、实现Observer(李斯、王斯、刘斯)3、Client(使用观察者)原创 2024-09-06 13:40:52 · 930 阅读 · 0 评论 -
模板方法模式【Template Method Pattern】, 什么是模板方法模式?核心思想?结构?优缺点?模板方法实现案例?
目录什么是模板方法模式?模板方法模式核心思想模板方法模式结构(1)抽象类(Abstract Class)(2)具体子类(Concrete Class)模板方法模式优缺点优点(1)复用代码(2)遵循开闭原则(3)灵活性和扩展性(1)增加类的复杂性(2)限制子类的自由模板方法模式应用场景(1)算法步骤固定但实现不同的场景(2)避免代码重复(3)流程控制模板方法实现案例1、定义一个车辆模型(抽象)2、实现类H1、H2,具体子类(Concrete Class)3、模版方法模式使用。原创 2024-09-06 13:40:24 · 900 阅读 · 0 评论 -
策略模式【Strategy Pattern】,什么是策略模式?核心思想?角色?优缺点?应用场景?略模式实现案例?
目录什么是策略模式?策略模式核心思想策略模式的角色(1)策略接口(Strategy)(2)具体策略类(Concrete Strategy)(3)上下文类(Context)策略模式的优缺点优点(1)遵循开闭原则(2)消除条件判断(3)提高代码灵活性和可维护性(4)代码复用性强缺点(1)增加了类的数量(2)客户端必须了解不同的策略(3)策略间可能产生冗余策略模式的应用场景(1)多个算法可以替换使用(2)消除冗长的条件判断(3)算法的实现需要与使用分离策略模式的典型应用(1)支付系统(2)排序算法选择。原创 2024-09-06 12:54:30 · 1056 阅读 · 0 评论 -
享元模式【Flyweight Pattern】,什么是享元模式?核心思想?角色组成?优点和缺点?享元模式应用场景?实现案例?
目录什么是享元模式?享元模式的核心思想享元模式的角色组成(1)抽象享元(Flyweight)(2)具体享元(Concrete Flyweight)(3)非享元(Unsharable Flyweight)(4)享元工厂(Flyweight Factory)享元模式的优点和缺点优点(1)减少内存使用(2)提高性能(3)线程安全缺点(1)实现复杂(2)过度共享(3)增加代码复杂度享元模式应用场景(1)图形界面元素的重复显示(2)游戏中的对象管理(3)网络连接和数据库连接池(4)缓存系统。原创 2024-09-06 11:23:44 · 1034 阅读 · 0 评论 -
组合模式【Composite Pattern】,什么是组合模式?结构?优缺点?主要角色?组合模式应用场景?实现案例?
目录什么是组合模式?组合模式结构组合模式优缺点优点(1)清晰的层次结构(2)统一操作(3)增加新的构件简单(4)符合开闭原则(5)灵活性缺点(1)设计较复杂(2)不容易限制组件类型(3)性能开销(4)难以进行复杂的操作组合模式主要角色(1)抽象角色(Component)(2)树叶角色(Leaf)(3)树枝角色(Composite)组合模式应用场景(1)文件系统(2)图形绘制系统(3)UI 组件树(4)企业组织结构(5)菜单系统(6)产品目录管理(7)任务管理系统(8)权限管理系统组合模式实现。原创 2024-09-05 23:34:36 · 877 阅读 · 0 评论 -
桥梁模式【Bridge Pattern】,什么是桥梁模式?核心思想?优缺点?主要角色?桥梁模式实现?
目录什么是桥梁模式?桥梁模式核心思想桥梁模式优缺点优点(1)分离抽象和实现(2)提高系统的可扩展性(3)符合开闭原则(4)减少子类的数量缺点(1)增加系统的复杂性(2)需要充分理解设计问题桥梁模式主要角色(1)抽象(Abstraction)(2)扩展抽象(Refined Abstraction)(3)实现接口(Implementor)(4)具体实现类(Concrete Implementor)桥梁模式的应用场景?(1)当系统需要在抽象和实现之间添加更多的灵活性时(2)当不希望在抽象类中直接实现功能时。原创 2024-09-05 21:58:13 · 891 阅读 · 0 评论 -
门面模式【Facade Pattern】,什么是门面模式?核心概念?主要角色?优缺点?应用场景?门面模式实现?
目录什么是门面模式?门面模式核心概念(1)简化接口(2)解耦客户端与子系统(3)分离关注点门面模式主要角色(1)门面角色(Facade)(2)子系统角色(SubSystem)门面模式优缺点优点(1)简化复杂系统的接口(2)松散耦合(3)更好的层次化结构(4)代码可读性和维护性提高(5)兼容单一职责原则缺点(1)隐藏了系统的部分功能(2)可能引入不必要的复杂性(3)性能开销(4)可能掩盖问题门面模式应用场景(1)简化复杂系统的使用(2)为旧系统提供兼容接口(3)分层开发系统(4)构建库或框架时。原创 2024-09-05 20:57:00 · 1008 阅读 · 0 评论 -
代理模式【Proxy Pattern】,什么是代理模式?主要角色?代理模式分类?优缺点?应用场景?代理模式实现?
目录什么是代理模式?代理模式的主要角色(1)抽象主题(Subject)(2)真实主题(Real Subject)(3)代理(Proxy)代理模式分类(1)静态代理(2)动态代理代理模式优缺点优点(1)控制对真实对象的访问(2)增强对象的功能(3)延迟初始化(4)支持远程访问(5)符合开闭原则缺点(1)增加了系统复杂度(2)性能开销(3)可能滥用代理(4)调试难度增大代理模式应用场景(1)远程代理(2)虚拟代理(3)保护代理(4)缓存代理(5)日志代理代理模式实现。原创 2024-09-05 15:02:39 · 805 阅读 · 0 评论 -
装饰器模式【Decorator Pattern】,什么是装饰模式?核心思想?结构?优缺点?应用场景?
目录什么是装饰模式?装饰模式核心思想装饰模式结构(1)抽象构件(Component)(2)具体构件(Concrete Component)(3)抽象装饰(Decorator)(4)具体装饰(ConcreteDecorator)装饰模式优缺点优点缺点装饰模式应用场景(1)动态地给对象添加额外的职责(2)扩展功能更加灵活(3)符合开闭原则(4)透明地给单个对象添加职责装饰模式实现1、成绩单的抽象类2、实现类(四年级成绩单)原创 2024-09-05 03:04:11 · 880 阅读 · 0 评论 -
适配器模式【Adapter Pattern】,什么是适配器模式?优缺点?模式分类?应用场景?类适配器?对象适配器?
目录什么是适配器模式?适配器模式优缺点优点(1)提高了类的复用性(2)灵活性和扩展性(3)遵循开闭原则(4)解耦缺点(1)增加了系统的复杂性(2)性能开销(3)可能会掩盖真实的系统设计缺陷(4)可能影响代码的可读性适配器模式结构适配器模式分类(1)类适配器模式(2)对象适配器模式适配器模式应用场景(1)旧系统迁移(2)第三方库集成(3)接口升级(4)多平台支持适配器模式实现类适配器1、当前系统用户信息接口和实现2、外系统的人员信息接口和实现3、将外部人员信息适配为内部人员信息(适配器)4、使用适配器。原创 2024-09-04 15:44:24 · 1143 阅读 · 0 评论 -
多例模式【Multition Pattern】,什么是多例模式?应用场景?优缺点?多例模式实现?
目录什么是多例模式?多例模式的特点?(1)可以有多个实例(2)自我创建和管理实例(3)重复使用实例多例模式的应用场景?多例模式的优缺点优点(1)限制实例数量(2)复用已有实例(3)灵活控制实例生命周期(1)难以扩展(2)难以测试(3)破坏封装性(4)代码复杂度高多例模式实现?1、定义两个皇帝2、大臣参拜多例模式(Multiton Pattern)是单例模式的一种扩展,它允许一个类创建并管理多个实例,这些实例都是该类本身。原创 2024-09-03 18:00:38 · 640 阅读 · 0 评论 -
原型模式【Prototype Pattern】,什么是原型模式?特性?优缺点?使用场景?原型模式实现?浅拷贝和深拷贝?
目录什么是原型模式?原型模式包含角色?(1)Prototype(抽象原型类)(2)ConcretePrototype(具体原型类)(3)Client(客户类/访问类)原型模式的浅克隆和深克隆原型模式的特性?(1)意图(2)主要解决(4)如何解决原型模式优缺点(1)优点(2)缺点原型模式适合在什么场景使用?原型模式实现通用实现方法1、原型克隆接口(抽象原型类)2、具体原型类3、访问类使用clone()方法1、原型克隆接口(抽象原型类)2、具体原型类3、访问类实际案例(电子邮件)原创 2024-09-03 17:04:52 · 1395 阅读 · 0 评论 -
建造者模式【Builder Pattern】适用场景?优缺点?建造者模式与工厂模式对比?建造者模式实现?
建造者模式就是将一个复杂对象的构建过程与其表示分离 , 使得同样的构建过程 , 可以创建不同的表示;用户只需要指定需要建造的类型就可以得到该类型对应的产品实例 , 不关心建造过程细节;建造者模式就是如何逐步构建包含多个组件的对象 , 相同的构建过程 , 可以创建不同的产品。原创 2024-09-03 14:42:46 · 806 阅读 · 0 评论 -
单例模式【Singleton Pattern】结构?特点?应用场景?优点与缺点?单例模式实现?
*** 大臣是天天要面见皇帝,今天见的皇帝和昨天的,前天不一样那就出问题了!*//*** 单例模式【Singleton Pattern】* 大臣天天见到的都是同一个皇帝,不会产生错乱情况,反正都是一个皇帝,是好是坏就这一个* 只要提到皇帝,大家都知道指的是谁,清晰,而又明确。问题是这是通常情况* 还有个例的,如同一个时期同一个朝代有两个皇帝,怎么办?* 单例模式很简单,就是在构造函数中多了加一个构造函数,访问权限是 private 的就可以了,这个模。原创 2024-09-03 10:56:51 · 690 阅读 · 0 评论 -
抽象工厂模式【Abstract Factory Pattern】实现原理?适用场景及特点?优缺点?抽象工厂模式实现?
目录抽象工厂模式实现原理抽象工厂功能抽象工厂适用场景及特点(1)多个相关的产品系列(2)不同的产品等级结构(3)产品变化频率低(4)隐藏具体产品的实现(5)易于替换产品系列抽象工厂模式的优缺点优点(1)产品族一致性(2)易于替换产品系列(3)隐藏具体产品的实现(4)符合开闭原则(5)提供一致的接口缺点(1)不易扩展产品等级结构(2)产品变化频率高(3)增加了系统的抽象性和理解难度抽象工厂模式实现1、人类的接口定义。原创 2024-09-02 22:17:36 · 1026 阅读 · 0 评论 -
工厂方法模式【Factory Method Pattern】优点?,缺点?应用场景、具体实现?
1、定义一个人类2、定义具体人种3、工厂方法类4、Class反射工具类5、工厂方法模式使用原创 2024-09-02 18:36:31 · 480 阅读 · 0 评论 -
设计模式分类(创建型模式、结构型模式、行为型模式)
设计模式分类(创建型模式、结构型模式、行为型模式)创建型模式设计模式使用场景工厂方法模式(Factory)工厂创建对象(经典实现:很多框架初始化时都会创建一个工厂对象,用来加载资源)抽象工厂模式(Abstract Factory)抽象工厂实例创建对象,工厂可修改,灵活度高(经典实现:Struts2插件机制的核心实现就是BeanFactory这个抽象工厂。Spring IOC加载Bean,AOP创建Proxy)单例模式(Singleton)适用于只需要一个对象的情况(原创 2024-09-02 17:24:37 · 1411 阅读 · 0 评论 -
设计模式专栏目录
1.设计模式分类(创建型模式、结构型模式、行为型模式)2.工厂方法模式【Factory Method Pattern,创建型】优点?,缺点?应用场景、具体实现?3.抽象工厂模式【Abstract Factory Pattern,创建型】实现原理?适用场景及特点?优缺点?抽象工厂模式实现?4.单例模式【Singleton Pattern,创建型】结构?特点?应用场景?优点与缺点?单例模式实现?5.建造者模式【Builder Pattern,创建型】适用场景?优缺点?建造者模式与工厂模式对比?原创 2024-09-02 17:22:36 · 252 阅读 · 0 评论