![](https://img-blog.csdnimg.cn/9668fddd73634e5ebb0b027cf1aae07c.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 87
详细介绍23种设计模式
孤叶飘落
坚持到底才是成功!!
展开
-
学习设计模式总结
这里就是我的整个设计模式学习笔记的导航,方便快速查找相关信息。我觉得设计模式是一种编程思想,需要我们经常反复看,特别是在学习框架的源代码的时候需要经常查看相关设计模式。原创 2022-07-03 20:44:16 · 165 阅读 · 0 评论 -
解释器设计模式
由于在解释器模式中使用类来表示语言的文法规则,因此可以通过继承等机制来改变或扩展文法。每一条文法规则都可以表示为一个类,因此可以方便地实现一个简单的语言。在抽象语法树中每一个表达式节点类的实现方式都是相似的,这些类的代码编写都不会特别复杂。增加新的解释表达式较为方便。如果用户需要增加新的解释表达式只需要对应增加一个新的终结符表达式或非终结符表达式类,原有表达式类代码无须修改,符合 “开闭原则”。...原创 2022-07-03 02:25:45 · 572 阅读 · 0 评论 -
备忘录设计模式
备忘录模式提供了一种可以恢复状态的机制。当用户需要时能够比较方便地将数据恢复到某个历史的状态。实现了内部状态的封装。除了创建它的发起人之外,其他对象都不能够访问这些状态信息。备忘录模式简化了发起人类。发起人不需要管理和保存其内部状态的各个备份,所有状态信息都保存在备忘录中,并由管理者进行管理,这符合单一职责原则。...原创 2022-07-03 01:36:14 · 506 阅读 · 0 评论 -
访问者设计模式
访问者模式在不修改对象结构中的元素的情况下,为对象结构中的元素添加新的功能。访问者模式通过访问者来定义整个对象结构通用的功能,从而提高复用程度。访问者模式通过访问者来分离无关的行为,把相关的行为封装在一起,构成一个访问者,这样每一个访问者的功能都比较单一。...原创 2022-07-03 00:17:32 · 447 阅读 · 0 评论 -
迭代器设计模式
迭代器它支持以不同的方式遍历一个聚合对象,在同一个聚合对象上可以定义多种遍历方式。在迭代器模式中只需要用一个不同的迭代器来替换原有迭代器即可改变遍历算法,我们也可以自己定义迭代器的子类以支持新的遍历方式...原创 2022-07-02 09:16:47 · 608 阅读 · 0 评论 -
中介者设计模式
中介者模式通过把多个同事对象之间的交互封装到中介者对象里面,从而使得同事对象之间松散耦合,基本上可以做到互补依赖。这样一来,同事对象就可以独立地变化和复用,而不再像以前那样“牵一处而动全身”了。...原创 2022-07-02 08:25:00 · 165 阅读 · 0 评论 -
观察者设计模式
观察者模式降低了目标与观察者之间的耦合关系,两者之间是抽象耦合关系。被观察者发送通知,所有注册的观察者都会收到信息【可以实现广播机制】原创 2022-07-02 07:46:37 · 161 阅读 · 0 评论 -
状态设计模式
状态模式可以将所有与某个状态有关的行为放到一个类中,并且可以方便地增加新的状态,只需要改变对象状态即可改变对象的行为。并且允许状态转换逻辑与状态对象合成一体,而不是某一个巨大的条件语句块。...原创 2022-07-02 07:26:46 · 182 阅读 · 0 评论 -
责任链设计模式
责任链模式降低了请求发送者和接收者的耦合度,并且增强了系统的可扩展性,后期可以根据需要增加新的请求处理类,满足开闭原则。增强了给对象指派职责的灵活性,比如当工作流程发生变化,可以动态地改变链内的成员或者修改它们的次序,也可动态地新增或者删除责任。最后责任链简化了对象之间的连接,一个对象只需保持一个指向其后继者的引用,不需保持其他所有处理者的引用,这避免了使用众多的 if 或者 if···else 语句。...原创 2022-07-01 23:10:26 · 1770 阅读 · 0 评论 -
命令设计模式
降低系统的耦合度。命令模式能将调用操作的对象与实现该操作的对象解耦。增加或删除命令非常方便。采用命令模式增加与删除命令不会影响其他类,它满足“开闭原则”,对扩展比较灵活。可以实现宏命令。命令模式可以与组合模式结合,将多个命令装配成一个组合命令,即宏命令。方便实现 Undo 和 Redo 操作。命令模式可以与后面介绍的备忘录模式结合,实现命令的撤销与恢复。...原创 2022-07-01 22:11:48 · 213 阅读 · 0 评论 -
策略设计模式
一个系统需要动态地在几种算法中选择一种时,可将每个算法封装到策略类中。一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现,可将每个条件分支移入它们各自的策略类中以代替这些条件语句。系统中各算法彼此完全独立,且要求对客户隐藏具体算法的实现细节时。系统要求使用算法的客户不应该知道其操作的数据时,可使用策略模式来隐藏与算法相关的数据结构。多个类只区别在表现行为不同,可以使用策略模式,在运行时动态选择具体要执行的行为。...原创 2022-07-01 21:41:02 · 1279 阅读 · 0 评论 -
模板方法设计模式
算法的整体步骤很固定,但其中个别部分易变时,这时候可以使用模板方法模式,将容易变的部分抽象出来,供子类实现。需要通过子类来决定父类算法中某个步骤是否执行,实现子类对父类的反向控制。...原创 2022-07-01 21:22:36 · 91 阅读 · 0 评论 -
享元设计模式
享元模式极大减少内存中相似或相同对象数量,节约系统资源,提供系统性能,享元模式中的外部状态相对独立,且不影响内部状态原创 2022-07-01 01:34:49 · 907 阅读 · 0 评论 -
组合设计模式
组合模式可以清楚地定义分层次的复杂对象,表示对象的全部或部分层次,它让客户端忽略了层次的差异,方便对整个层次结构进行控制。客户端可以一致地使用一个组合结构或其中单个对象,不必关心处理的是单个对象还是整个组合结构,简化了客户端代码。在组合模式中增加新的树枝节点和叶子节点都很方便,无须对现有类库进行任何修改,符合“开闭原则”。组合模式为树形结构的面向对象实现提供了一种灵活的解决方案,通过叶子节点和树枝节点的递归组合,可以形成复杂的树形结构,但对树形结构的控制却非常简单。...原创 2022-07-01 01:11:32 · 137 阅读 · 0 评论 -
外观设计模式
降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。原创 2022-06-30 16:05:50 · 96 阅读 · 0 评论 -
桥接设计模式
桥接模式提高了系统的可扩充性,在两个变化维度中任意扩展一个维度,都不需要修改原有系统。原创 2022-06-30 15:53:08 · 91 阅读 · 0 评论 -
装饰者设计模式
饰者模式可以带来比继承更加灵活性的扩展功能,使用更加方便,可以通过组合不同的装饰者对象来获取具有不同行为状态的多样化的结果。装饰者模式比继承更具良好的扩展性,完美的遵循开闭原则,继承是静态的附加责任,装饰者则是动态的附加责任。...原创 2022-06-30 14:55:55 · 106 阅读 · 0 评论 -
代理设计模式
本文简述了代理模式概述和结构,重点详细介绍了静态代理,JDK动态代理,CGLIB动态代理。最后比较了三种代理和代理模式的优缺点,使用场景。原创 2022-06-24 23:43:19 · 88 阅读 · 0 评论 -
适配器设计模式
适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)原创 2022-04-16 19:24:16 · 242 阅读 · 0 评论 -
建造者设计模式
建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象转载 2022-04-16 19:19:44 · 475 阅读 · 0 评论 -
原型设计模式
创建新的对象比较复杂时,可以利用原型模式简化对象的创建过程,同时也能够提高效率原创 2022-04-16 19:16:47 · 172 阅读 · 0 评论 -
工厂设计模式
工厂模式的意义是将实例化对象的代码提取出来,放到一个类中统一管理和维护,达到和主项目的依赖关系的解耦。从而提高项目的扩展和维护性。原创 2022-04-16 19:10:31 · 229 阅读 · 0 评论 -
单例设计模式
所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。原创 2022-04-16 19:05:12 · 398 阅读 · 0 评论 -
设计模式概述
设计模式是程序员在面对同类软件工程设计问题所总结出来的有用的经验,模式不是代码,而是某类问题的通用解决方案,设计模式(Design pattern)代表了最佳的实践。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。原创 2022-04-16 18:58:58 · 72 阅读 · 0 评论 -
UML类图
UML本身是一套符号的规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中的各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等原创 2022-04-16 18:55:57 · 169 阅读 · 0 评论 -
设计模式七大原则
设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据)设计模式常用的七大原则有:单一职责原则,接口隔离原则,依赖倒转原则,里氏替换原则,开闭原则,迪米特法则合成复用原则原创 2022-04-16 18:52:53 · 271 阅读 · 0 评论