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

设计模式的六大原则

时间:2023-08-14 23:11:30浏览次数:36  
标签:六大 依赖 原则 父类 接口 Principle 模块 设计模式

开放封闭原则(Open Close Principle) 对外扩展是开放的,对内修改是封闭的,目的是保证程序的可扩展性以及可维护性   里氏代换原则(Liskov Substitution Principle) 子类可以扩展父类的功能,但不能改变父类原有的功能。 规定了子类不得重写父类的普通方法,只能重写父类的抽象方法,如果在设计软件时要继承的话,设计继承抽象类而不是直接继承普通类 保证了父类的复用性,不会破坏继承的机制,降低系统故障几率   依赖倒转原则(Dependence Inversion Principle) 高层模块不应该依赖于底层模块,细节应该依赖抽象、接口。 相对于细节的多变性,抽象的东西会更加稳定,以抽象为基础搭建起来的架构比以细节为基础搭建起来的架构要稳定的多。 问题:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。 这种场景下,类A一般是高级模块,类B和类C是低级模块,负责基本的原子操作,假如要修改类A的话,会给程序带来不必要的风险。 解决方案:将类A修改为依赖接口1,类B和类C各自实现接口1,通过接口间接与类B或者类C发生联系,则会大大降低修改类A的几率。   接口隔离原则(Interface Segregation Principle)

  1. 用户不应该依赖与他不需要的接口
  2. 类间的依赖关系应该建立在最小的接口上
通俗来讲就是尽量将接口细化,同时保证接口中的方法尽量的少。   迪米特法则(最少知道原则)(Demeter Principle) 一个对象应该对其他对象有最少的了解
  • 从依赖者的角度来说,只依赖应该依赖的对象
  • 从被依赖者的角度来说,只暴露应该暴露的方法
优点:
  • 降低了类之间的耦合度,提高了模块的相对独立性
  • 提高了类的可复用性以及系统的延展性
  单一职责原则(Principle of single responsibility) 对一个类而言,应该仅有一个引起他变化的原因。如果存在多于一个动机去改变一个类,那么这个类就具有多于一个的职责,就应该把多于的职责分离出去,再去创建一些类来完成每一个职责。 优点:
  • 降低类的复杂度,实现高内聚,低耦合
  • 提高类的可读性,提高系统的可维护性
  • 降低引起变更所带来的风险
 

标签:六大,依赖,原则,父类,接口,Principle,模块,设计模式
From: https://www.cnblogs.com/Yuansj0206/p/17630030.html

相关文章

  • 设计模式--策略模式
    简介策略模式是一种行为设计模式,它将一组行为转换为对象,并使其在原始上下文对象内部能够相互替换原始对象被称为上下文,它包含指向策略对象的引用并将执行行为的任务分派给策略对象组成策略接口(Strategy):所有具体策略的通用接口,它声明了一个上下文用于执行策略的方法具体......
  • 设计模式大全:覆盖各类场景的实用模式与结构图
    设计模式大全:覆盖各类场景的实用模式与结构图目录设计模式大全:覆盖各类场景的实用模式与结构图1、设计模式六大原则(SOLID)2、设计模式分类及适用场景3、GOF经典设计模式及其结构图3-1、创建型1)工厂模式-FactoryPattern2)抽象工厂模式-AbstractFactoryPattern3)单例模式-Singleton......
  • 13 桥接模式 -- go语言设计模式
    桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(HandleandBody)模式或接口(interface)模式。桥接模式的实现代码packagemainimport"fmt"//发送信息的具体实现(操作)typeMessageImplementerinterface{ send(test,......
  • WAVE SUMMIT2023六大分会场同步开启,飞桨+文心大模型加速区域产业智能化!
    由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVESUMMIT深度学习开发者大会2023将于8月16日重磅来袭!届时上海、广州、深圳、成都、南昌和宁波六大分会场将同步开启!分会汇聚区域产业大咖、科研机构专家、知名学者和技术大牛,通过主题演讲和深度交流等形式......
  • Java中常用的设计模式
    Java中常用的设计模式有以下几种:单例模式(SingletonPattern):确保一个类只有一个实例,并提供全局访问点。工厂模式(FactoryPattern):通过工厂类创建对象,隐藏对象的实例化过程。抽象工厂模式(AbstractFactoryPattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定具体类。建造者......
  • 简单工厂设计模式
    一.意图简单工厂模式(SimpleFactory) 又叫静态工厂方法(StaticFactoryMethod)模式。简单工厂模式通常是定义一个工厂类,这个类可以根据不同变量返回不同类的产品实例。 二.特点根据外部传入的类型确定要创建哪一个具体类的对象,通过简单工厂模式,客户端无需关注对象如何创建......
  • 模板设计模式
    一.意图模板方法模式 (TemplateMethod)是一种行为设计模式,它在超类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤。模板方法模式是所有模式中最为常见的几个模式之一,是基于继承的代码复用的基本技术。,没有关联关系。因此,在模板方法模式的类结构......
  • VTK 实例8:command与observe设计模式(当交互使相机变化时打印出当前相机的坐标,当发生拾
    1#include"vtkAutoInit.h"2VTK_MODULE_INIT(vtkRenderingOpenGL2);3VTK_MODULE_INIT(vtkInteractionStyle);4#include<vtkConeSource.h>5#include<vtkPolyDataMapper.h>6#include<vtkRenderer.h>7#include<vtkRende......
  • 10个微服务设计模式
    微服务设计模式是一种指导微服务架构设计和开发的一系列原则和实践。微服务设计模式的目的是为了解决微服务架构中遇到的一些常见的问题和挑战,比如服务划分、服务通信、服务治理、服务测试等。微服务设计模式可以帮助我们构建出高效、可靠、可扩展、可维护的微服务系统。本文将......
  • .net 常用几个设计模式
    .NETCore框架支持许多设计模式,以下是一些常见的设计模式:一、抽象工厂模式(AbstractFactoryPattern):提供一种将一组相关或相互依赖的对象创建起来的方式,而无需指定其具体类。抽象工厂模式是一种创建型设计模式,它提供了一个接口来创建一系列与特定类无关的对象,而无需指定这些对象......