![](https://img-blog.csdnimg.cn/direct/d006ad54d51a402bac3e2dc4d9235a9e.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 90
本专栏旨在深入探讨各种设计模式,并对其进行分类,以便读者能够根据实际需求快速找到适合的设计模式。
丿微风乍起
这个作者很懒,什么都没留下…
展开
-
设计模式之装饰器模式
装饰器模式是一种结构型设计模式,它允许我们在不改变原有对象结构的情况下,动态地给对象增加一些职责(即增加其额外功能)。其核心在于通过组合而非继承的方式来扩展对象的功能。Component: 这是抽象组件接口,所有的具体组件和装饰器都必须实现这个接口。Concrete Component: 具体组件,这是我们要装饰的基本对象,它实现了Component接口。Decorator: 抽象装饰器,也是实现Component接口的,它包含一个对Component类型的引用,通常在构造函数中初始化。原创 2024-06-05 21:00:00 · 1337 阅读 · 1 评论 -
设计模式之代理模式
代理模式(Proxy Pattern)是一种结构型设计模式,它允许我们为某个对象提供一个代理对象,并由代理对象控制对原对象的访问。这种设计模式可以在不改变原始类(或称为被代理类)代码的情况下,通过引入代理类来给原始类附加功能。代理设计模式是一种强大且灵活的设计模式,它可以在不修改原始类代码的情况下为原始类添加额外的功能。通过静态代理和动态代理两种方式,我们可以根据具体的应用场景选择合适的实现方式。同时,我们也需要注意到代理设计模式的优缺点,以便在实际应用中做出最佳的选择。原创 2024-05-28 22:00:00 · 997 阅读 · 0 评论 -
设计模式之原型模式
原型模式是一种创建型设计模式,它通过复制现有对象(原型)来创建新对象,而不需要从头开始创建。这种模式允许我们在运行时根据需要动态地复制对象,同时保持高性能和最小化资源消耗。原型模式的核心在于定义了一个可以克隆自身的接口,这样就可以通过已经存在的实例来快速生成具有相同或相似状态的新实例,而不需要关注对象创建的具体细节。原型设计模式是一种强大的设计模式,它允许我们通过复制对象来创建新的对象,从而提高了对象的创建效率。原创 2024-05-26 14:29:52 · 945 阅读 · 0 评论 -
设计模式之建造者模式
Builder模式,即建造者模式,也被称作生成器模式,属于创建型设计模式的一种。它旨在将一个复杂对象的构建过程与其表示过程分离,使得同样的构建过程可以创建不同的表示。此模式的核心思想是将复杂对象的构建分解成一系列步骤,并将这些步骤封装在独立类中,即所谓的建造者类,以实现构建和表示的解耦。建造者模式的核心在于“变与不变”的分离。在软件系统中,经常面临的情况是某些对象的组成部分(即不变的部分)是固定的,但这些部分的组合方式(即变化的部分)可能会频繁地变化。原创 2024-05-15 20:00:00 · 813 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式是一种创建型设计模式,其核心思想是将对象的创建与使用分离,即客户端代码不再直接负责对象的创建,而是通过一个或多个工厂类来负责。这样,客户端代码只需关心如何使用对象,而无需关注对象的创建细节。工厂模式使得对象的创建过程更加灵活和可配置,从而提高了代码的可维护性和可扩展性。工厂模式是一种非常实用的设计模式,它通过将对象的创建与使用分离,使得代码更加灵活和可扩展。在实际项目中,我们可以根据具体的需求选择合适的工厂模式来实现对象的创建。同时,我们也需要注意避免过度使用工厂模式,以免增加系统的复杂性。原创 2024-05-11 21:00:00 · 745 阅读 · 1 评论 -
设计模式之单例模式
单例模式是一种创建型设计模式,目的在于保证一个类仅有一个实例,并通过一个全局访问点提供对该实例的访问。这种模式的优势在于,它有助于在系统中维护某些资源的唯一性,例如配置信息、数据库连接等,防止资源的重复创建和浪费。私有构造函数:确保外部代码不能通过常规方式创建该类的实例(如通过new创建实例)。静态实例属性:用于保存单一实例的引用,并确保其唯一性。公有静态方法:提供一个访问点,使外部能够获取到唯一的实例。线程安全措施:在多线程环境中确保实例的唯一性不受影响。原创 2024-05-10 22:15:00 · 1014 阅读 · 0 评论 -
开篇:设计原则揭秘
设计原则是构建健壮、可维护和可扩展系统的核心驱动力。通过深入理解和应用这些原则,我们可以提高代码的质量、降低维护成本,并更好地应对不断变化的业务需求和技术挑战。在实际开发中,我们应该根据项目的具体需求和特点来灵活运用这些原则,以构建出更加优秀的软件产品。同时,我们也需要不断学习和探索新的设计原则和技术,以应对日益复杂的软件开发挑战。原创 2024-05-10 22:00:00 · 697 阅读 · 0 评论