设计模式为软件设计中出现的常见问题提供了通用的可重用解决方案。该模式通常显示类或对象之间的关系和交互。我们的想法是通过提供经过良好测试和验证的开发/设计范例来加快开发过程。设计模式是解决常见问题的独立于编程语言的策略。这意味着一个设计模式代表一个想法,而不是一个特定的实现。通过使用设计模式,您可以使代码更加灵活、可重用和可维护。
在项目中始终实现设计模式不是强制性的。设计模式不适用于项目开发。设计模式旨在解决常见问题。只要有需要,就必须实现一个合适的模式,以避免将来出现此类问题。要找到要使用的模式,您只需尝试了解设计模式及其用途。只有这样,你才能挑对一个。
目标: 了解每个设计模式的目的和用法,以便根据需要选择并实施正确的模式。
例子: 在许多实际情况下,我们只想创建一个类的实例。例如,一个国家在任何给定时间只能有一位在职总统。这种模式称为单态模式。其他软件示例可能是由多个对象共享的单个DB连接,因为为每个对象创建单独的DB连接成本很高。类似地,应用程序中可以有一个配置管理器或错误管理器来处理所有问题,而不是创建多个管理器。 设计模式的类型 设计模式主要有三种:
- 创造性的 这些设计模式都是关于类实例化或对象创建的。这些模式可以进一步分为类创造模式和对象创造模式。类创建模式在实例化过程中有效地使用继承,而对象创建模式有效地使用委托来完成任务。
创意设计模式是最重要的 工厂方法、抽象工厂、生成器、单例、对象池和原型。
创造性设计模式的用例- 1) 假设一个开发人员想要创建一个简单的DBConnection类来连接到一个数据库,并且想要从代码中访问多个位置的数据库,那么开发人员通常要做的是创建一个DBConnection类的实例,并在需要时使用它来执行数据库操作。这会导致从数据库创建多个连接,因为DBConnection类的每个实例都有一个到数据库的单独连接。为了解决这个问题,我们将DBConnection类创建为一个单例类,这样只创建一个DBConnection实例并建立一个连接。因为我们可以通过一个实例管理DB连接,所以我们可以控制负载平衡、不必要的连接等。
2) 假设您想要创建多个类似类型的实例,并且想要实现松散的 耦合 然后你可以选择工厂模式。实现工厂设计模式的类充当多个类之间的桥梁。考虑使用SQL Server和Oracle等多个数据库服务器的例子。如果您正在使用SQL Server数据库作为后端开发应用程序,但将来需要将数据库更改为oracle,则需要修改所有代码,以便工厂设计模式保持松散耦合和易于实现,我们应该采用工厂设计模式,以实现松散耦合和类似对象的创建。
- 结构的 这些设计模式是关于组织不同的类和对象,以形成更大的结构,并提供新的功能。
结构设计模式是 适配器、桥接器、复合、装饰器、Facade、Flyweight、私有类数据和代理。
结构设计模式的用例-
1) 当两个接口彼此不兼容,并希望通过适配器在它们之间建立关系时,称为适配器设计模式。适配器模式将一个类的接口转换为客户机所期望的另一个接口或类,即适配器允许由于不兼容而无法协同工作的类。所以在这些不兼容的场景中,我们可以选择适配器模式。
- 关于行为的 行为模式是关于识别对象之间的公共通信模式并实现这些模式。
行为模式是 责任链、命令、解释器、迭代器、中介器、纪念品、空对象、观察者、状态、策略、模板方法、访问者
行为设计模式的用例-
1) 模板模式定义了将某些步骤推迟到子类的操作中的算法框架。模板方法允许子类在不改变算法结构的情况下重新定义算法的某些步骤。例如,在您的项目中,您希望模块的行为能够扩展,这样我们就可以随着应用程序需求的变化,或满足新应用程序的需求,使模块以新的、不同的方式运行。但是,不允许任何人对其进行源代码更改,也就是说,在开发人员可以接近模板设计模式的场景中,您可以添加但不能修改结构。
参考资料: https://sourcemaking.com/design_patterns https://sourcemaking.com/design_patterns/singleton
本文由 阿比吉特·萨哈 和 哈拉塔尼亚 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论。