首页 > 其他分享 >设计模式的七大原则

设计模式的七大原则

时间:2023-12-19 09:33:32浏览次数:30  
标签:依赖 职责 原则 朋友 七大 抽象 设计模式

目的:使程序高内聚、低耦合、高重用、高灵活,可维护性好,可扩展性高。

设计模式的三种类型:

创建型:单例、工厂、抽象工厂、原型、建造者

结构型:适配器、桥接、装饰、组合、外观、享元、代理

行为型:模板法、命令、访问者、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链

七大原则:

一、单一职责原则

一个类应该只负责一项职责。

二、接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口上,和单一职责原则是相通的,需要对类或接口进行适当的拆分,以避免职责过度集中。

三、依赖倒置原则

一句话,依赖抽象面向抽象编程。

1、中心思想是面向抽象编程,而不是面向对象编程,变量的声明类型尽量是抽象类或接口,这样我们的变量引用和实际对象间就存在一个缓冲层,利于程序扩展和优化

2、抽象不应该依赖细节,细节应该依赖抽象

3、高层模块不应该依赖底层模块,二者都应该依赖其抽象

四、里氏替换原则

我们所有引用基类的地方必须能透明地使用其子类的对象,所以,在子类中尽量不要重写父类的方法,可以称之为向下兼容。

继承会使两个类的耦合性增强,适当情况下,我们可以通过依赖、聚合、组合来解决问题。

五、开闭原则

对扩展开放,对修改关闭,这里的扩展是指增加现有抽象的子类或者抽象类去实现功能,而不是修改现有类的代码。

尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

六、迪米特法则

又名最少知道原则

更简单的定义:只与直接的朋友通信。

直接的朋友:只要两个对象之间有耦合关系(依赖、关联、组合、聚合等),我们就说这两个对象之间是朋友关系。其中我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。即陌生类不要以局部变量的形式出现在类的内部。

七、合成复用原则

尽量使用合成/聚合的方式,而不是使用继承。

 

标签:依赖,职责,原则,朋友,七大,抽象,设计模式
From: https://www.cnblogs.com/seeksimple/p/17912890.html

相关文章

  • 设计模式复习
    单一职责原则(SingleResponsibilityPrinciple)定义:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能......
  • 设计模式复习
    简单工厂模式一。定义:1.又被称作静态方法模式2.根据参数不同返回不同类的实例3.实例通常具有相同的父类二。模式角色:工厂角色:抽象产品:具体产品:三。类图工厂角色和具体产品为依赖关系。具体产品和抽象产品为实现关系。工厂模式一。定义:1.又被称为多态工厂和虚拟构造器......
  • Python:设计模式
    一、设计模式与面向对象1.1设计模式  软件设计阶段针对反复出现的问题提出的统一解决方案。每类问题的解决方案都被系统的命名为XX设计模式。1.2面向对象  按照一件事的组成元素分别制作进行组装。这些元素分为属性与接口。1.2.1三大特性  封装:将对象封装为类,将对......
  • 2023-12-18设计模式概述
                 ......
  • Java五种设计模式实现奶茶订单生成系统小DEMO
    前言这是大学时候上设计模式这门课写的程序,当时课程任务是要求结合五个设计模式写一个系统,最近偶然翻到,把系统分享一下。成品预览主界面​功能介绍订单管理系统,实现了对订单的增删改查。且实现了将订单内容写入文件,每次增删改查都会做保存,下次重启程序时......
  • 架构模式,设计模式,代码模式
    架构模式,架构模式是一个系统的高层次策略,涉及到大尺度的组件以及整体性质,架构模式的好坏可以影响到总体布局和框架性结构设计模式,是中等尺度的结构策略,这些中等尺度的结构实现了一些大尺度组件的行为和它们之前的关系。设计模式的好坏不会影响到系统总体布局和总体框架。设计......
  • Java设计模式之七大设计原则
    七大设计原则设计原则概述单一职责原则定义一个类仅有一个引起它变化的原因分析模拟场景访客用户普通用户VIP用户代码实现/***视频用户接口*/publicinterfaceIVideoUserService{​  voiddefinition();​  voidadvertisement();}​/***......
  • 设计模式
    一.参考网址1. 设计模式2. 23种设计模式实战!超级全,超级好懂!......
  • Dart设计模式之桥接模式
    dart设计模式之桥接模式桥接模式(Bridge)模式分析桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这......
  • 设计模式(十七)中介者
    一、定义义一个对象来封装一系列的对象交互。中介者模式使各对象不需要显示地相互引用,从而使其耦合松散,而且可以让你相对独立地改变它们之间的交互。中介者模式又称为调停模式,它是一种对象说行为型模式。二、描述在中介者模式中,引入了用于协调其他对象/类之间的相互调用的中介......