设计模式大全
文章平均质量分 90
设计模式是软件开发中一个非常重要的思想,在实际的开发中也有广泛的用途,也是面试官比较常问的一个领域。如果设计模式学的较好的话,能大幅提升软件开发能力。本专栏展示了Python、Java、C++、Go、JS语言实现所有设计模式的例子
guohuang
10多年的互联网工作经验,在产品、运营方面都有涉猎。有个大规模并发服务的开发的经验,参与日活过50万用户产品开发经验。曾经创办Baas云软件服务公司,先后服务过20家以上的企业,帮助客户解决早期产品开发的技术问题,给客户节省成本。
展开
-
设计模式——22. 责任链模式
责任链模式是一种行为设计模式,它允许你创建一个对象链,每个对象都包含了请求的一部分处理逻辑,并且请求按照链的顺序依次传递,直到有一个对象处理它为止。责任链模式通常用于将一个请求从发送者传递给多个接收者,直到有一个接收者处理请求为止。原创 2023-10-15 19:00:00 · 346 阅读 · 0 评论 -
设计模式——21. 中介者模式
中介者模式(Mediator Pattern)是一种行为设计模式,它允许对象之间通过一个中介者对象进行通信,而不是直接相互引用。这种模式有助于减少对象之间的直接关联,从而提高系统的可维护性和松耦合性。原创 2023-10-15 19:00:00 · 337 阅读 · 0 评论 -
设计模式——20. 解释器模式
解释器模式(Interpreter Pattern)是一种行为型设计模式,它用于定义一门语言的语法解析,并为该语言创建解释器。该模式将一个问题或领域表达成一个语言,然后提供一个解释器来解释这种语言中的表达式,以执行特定操作。原创 2023-10-14 19:00:00 · 271 阅读 · 0 评论 -
设计模式——19. 访问者模式
访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不改变元素类(被访问者)的前提下,定义对元素的新操作(访问者),并将这些操作封装到独立的访问者类中。这样,你可以在不修改被访问者的类的情况下,通过不同的访问者来执行不同的操作。原创 2023-10-13 19:00:00 · 457 阅读 · 0 评论 -
设计模式——18. 备忘录模式
备忘录模式(Memento Pattern)是一种行为设计模式,它允许在不暴露对象内部状态的情况下捕获并恢复对象之前的状态。备忘录模式涉及三个主要角色:原发器(Originator)、备忘录(Memento)和负责人(Caretaker)。原创 2023-10-12 11:30:00 · 92 阅读 · 0 评论 -
设计模式——17. 状态模式
状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态发生改变时改变其行为。状态模式将对象的状态封装成不同的状态对象,并将状态切换时的行为委托给当前状态对象。这样,对象在不同状态下具有不同的行为,而无需在对象本身中使用大量的条件语句来管理状态。原创 2023-10-11 19:00:00 · 146 阅读 · 0 评论 -
设计模式——16. 迭代器模式
迭代器模式(Iterator Pattern)是一种行为型设计模式,它用于提供一种访问聚合对象(如列表、数组、集合等)元素的统一接口,而不需要了解底层数据结构的具体实现。迭代器模式将遍历聚合对象的操作封装在一个独立的迭代器对象中,这样可以隔离遍历算法和数据结构,使得代码更加灵活、可维护和可扩展。原创 2023-10-10 19:00:00 · 247 阅读 · 0 评论 -
设计模式——15. 模板方法模式
模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的骨架,将算法的具体步骤延迟到子类中实现。这个模式允许子类在不改变算法结构的情况下重新定义算法的某些步骤。原创 2023-10-09 19:00:00 · 100 阅读 · 0 评论 -
设计模式——14. 观察者模式
观察者模式(Observer Pattern)是一种行为型设计模式,用于定义对象之间的一对多依赖关系,使得当一个对象的状态发生改变时,所有依赖于它的对象都能够自动收到通知并更新自己的状态,以保持与被观察对象的同步。观察者模式也被称为发布-订阅模式。原创 2023-10-08 10:48:58 · 390 阅读 · 0 评论 -
设计模式——12. 策略模式
策略模式(Strategy Pattern)是一种行为型设计模式,它允许你定义一系列算法,将每个算法封装成一个独立的类,并使它们可以互相替换,使得客户端代码可以根据需要在不修改原有代码的情况下选择不同的算法来执行某个任务。策略模式将算法的选择和使用与算法的实现分离开来,提高了代码的可维护性和扩展性。原创 2023-10-07 19:00:00 · 272 阅读 · 1 评论 -
设计模式——11. 享元模式
享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在减少系统中相似对象的内存占用或计算开销,通过共享相同的对象来达到节省资源的目的。原创 2023-10-06 19:00:00 · 272 阅读 · 1 评论 -
设计模式——10. 组合模式
组合模式是一种结构型设计模式,用于将对象组合成树状结构以表示“部分-整体”的层次结构。它允许客户端以一致的方式处理单个对象和组合对象(包含多个对象的容器),使得客户端无需关心它们之间的差异。原创 2023-10-05 19:00:00 · 883 阅读 · 0 评论 -
设计模式——9. 桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,它用于将抽象部分和具体实现部分分离,以便它们可以独立地变化而不互相影响。桥接模式通过将抽象和实现分离来解决类的多层次继承结构问题,使得系统更加灵活。原创 2023-10-03 11:00:00 · 216 阅读 · 2 评论 -
设计模式——8. 代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许一个对象(代理对象)充当另一个对象(真实对象)的接口,以控制对该对象的访问。代理对象在访问真实对象时可以执行一些额外的操作,例如权限验证、懒加载、缓存、日志记录等,而无需修改真实对象的代码。原创 2023-09-29 11:00:00 · 195 阅读 · 1 评论 -
设计模式——7. 装饰器模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许你在不改变对象接口的前提下,动态地将新行为附加到对象上。这种模式是通过创建一个包装(或装饰)对象,将要被装饰的对象包裹起来,从而实现对原有对象功能的增强和扩展。原创 2023-09-28 18:00:00 · 414 阅读 · 0 评论 -
设计模式——6. 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它用于将一个类的接口转换成客户端所期望的另一个接口,以便于两者之间的协同工作。适配器模式允许不兼容的接口之间能够协同工作,而无需修改现有的代码。原创 2023-09-28 08:00:00 · 84 阅读 · 0 评论 -
设计模式——5. 原型模式
原型模式(Prototype Pattern)是一种创建型设计模式,其核心思想是通过复制(克隆)一个现有对象来创建新的对象,而不是通过实例化类来创建。这意味着在原型模式中,新对象的创建不需要知道具体的类,而是通过复制现有对象的属性和状态来创建。原型模式通常包括一个原型接口或抽象类,以及具体的原型类实现该接口或继承该抽象类。原创 2023-09-26 22:33:25 · 387 阅读 · 1 评论 -
设计模式——4. 建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,旨在将一个复杂对象的构建过程与其表示分离,以便可以使用相同的构建过程来创建不同的表示。它允许你逐步构建一个复杂对象,同时保持构建过程的灵活性。原创 2023-09-25 14:27:56 · 294 阅读 · 1 评论 -
设计模式——3. 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种创建一组相关或依赖对象的方式,而无需指定它们的具体类。抽象工厂模式是工厂模式的扩展,它关注于创建一组相关的对象家族,而不仅仅是一个单一的对象。抽象工厂模式的关键思想是将对象的创建与使用分离,同时确保创建的对象家族之间具有一致性。这使得系统更容易扩展,因为可以轻松添加新的产品家族,而不需要修改客户端代码。原创 2023-09-25 11:40:51 · 307 阅读 · 0 评论 -
设计模式——2. 简单工厂模式
工厂模式(Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的方式,而无需直接暴露对象的创建逻辑。工厂模式将对象的实例化过程封装在一个工厂类中,使客户端代码与具体对象的创建解耦,从而提高了代码的可维护性和灵活性。原创 2023-09-25 11:00:00 · 332 阅读 · 1 评论 -
设计模式——1. 单例模式
单例模式(Singleton Pattern)用于确保一个类只有一个实例,并提供一个全局访问点以访问该实例。这意味着无论在何处请求该类的实例,都将返回相同的唯一实例。单例模式常常用于需要共享资源,或需要限制某些资源在系统中的访问次数的情况下。原创 2023-09-23 18:13:24 · 406 阅读 · 2 评论 -
设计模式概述
设计模式是软件开发中一个非常重要的思想,在实际的开发中也有广泛的用途,也是面试官比较常问的一个领域。如果设计模式学的较好的话,能大幅提升软件开发能力。原创 2023-09-23 18:10:09 · 343 阅读 · 1 评论