首页 > 其他分享 >【设计模式——六原则】

【设计模式——六原则】

时间:2022-10-17 18:06:36浏览次数:65  
标签:定义 原则 编程 封闭 实例 设计模式


前言:

在学习设计模式的时候,贯穿二十三个设计模式的始终——设计模式六原则,单一职责原则、开放—封闭原则、依赖倒转原则、迪米特原则、里氏代换原则、合成—聚合复用原则。六大原则,在设计模式的比赛中充当的裁判员的角色。

核心:

·单一职责原则


1.定义


就一个类而言,应该仅有一个引起它变化的原因。


2.实例


手机职责过多,延误拍摄UFO。


3.注意


编程时,在类的职责上多思考,做到单一原则,这样的代码才是易扩展、易维护、易复用,灵活多样。

·开放—封闭原则

1.定义

是说软件实体(类、模块、函数等等)应该可以扩展,但是不可修改。
特征:
对于扩展是开放的!
对于更改是封闭的!
面对需求的更改,保持相对稳定,使软件不断更新。——开发—封闭原则的启示。

2.实例

对于按时上班,员工迟到现象,解决问题的关键:对工作时间和业绩成效的修改关闭,对时间制度扩展开放。

3.注意

开放—封闭原则是面向对象设计的核心,绝对的封闭是不存在的,我们在设计的时候,时刻考虑让这个类足够好。在面对需求时,对程序的改动是增加新代码,而不是更改先有代码。

·依赖倒转原则

1.定义

高层模块不依赖低层模块,两个都应该依赖抽象
抽象不应该依赖细节,细节应该依赖抽象

2.实例

电脑的主板、CPU、内存等都是针对接口编程,如果针对实现编程,内存需要对应品牌的主板,若换内存就要换对应的主板。

3.注意

针对接口编程,不要对实现编程

·迪米特原则

1.定义

也叫最少知识法则。如果两个类彼此不需要直接通信,那么这两个类,就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转达这个调用。

2.实例

在公司,自己电脑出现了问题直接找IT部的主管,而不需要和公司的其他员工联系,主管会派人员前来维修。

3.注意

强调类之间的松耦合


·里氏转换原则

1.定义

子类型必须能够替换掉它们的父类型。
使继承复用成了可能。

2.实例

猫继承动物,拥有动物吃、跑、叫等行为,如果想要一个狗、牛等,除了更改实例化,其他地方不需要改变。

3.注意

子类继承父类所有非Private的属性和行为。


·合成—聚合复用原则

1.定义

尽量使用合成/聚合,尽量不要使用类继承。

·聚合:是一种弱的拥有关系,A对象包含B对象,但是B不是A的一部分
·合成:是一种强的拥有关系,体现了严格的整体和部分之间的关系,部分和整体的生命周期一样。

2.注意

优先使用对象的合成和聚合。

总结:

设计模式六原则,体现在程序的设计当中,在编程的过程之中,考虑原则,使得自己设计的代码编程的更好!

标签:定义,原则,编程,封闭,实例,设计模式
From: https://blog.51cto.com/u_15586641/5763780

相关文章

  • 【设计模式之三工厂】
    前言:本文中所讲解的三工厂指的是简单工厂,工厂方法,抽象工厂设计模式,在大话设计模式中,三个工厂最后以三姐妹的身份出现在比赛现场中,本文中将三个工厂联系起来进行学习。内容:......
  • 【设计模式之代理模式】
    前言:今天我们学习的模式为代理模式,见名字如见该模式,代理模式,则提供一个代理,由代理对对象进行访问,暂时先这么理解!通过接下来的学习,大家肯定会对代理模式有一个全面的了解。......
  • 【设计模式之装饰模式】
    前言:装饰模式,属于二十三个设计模式中之一,那么,什么是装饰模式,下面,大家请跟着我一起走进装饰模式,来看看装饰模式:核心:(一)、结构图想知道设计模式吗?那么看了它的UML图,你就一目......
  • 【设计模式之策略模式】
    前言:最近在学习设计模式,简单工厂是接触的第一个模式,后来,就遇到了策略模式,策略模式真是有谋略啊!定义了算法家族,有了算法家族,再难的计算都不在话下了!!!今天,我们一起来学习策略......
  • 12-Go设计模式-观察模式
    观察模式样例代码/*观察者模式观察者模式是用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生......
  • 你还在写垃圾代码?快用 Java 8 重构传统设计模式吧,是真的优雅!
    来源:https://www.cnblogs.com/yjmyzz/p/refactor-design-pattern-using-java8.htmljava8中提供的很多新特性可以用来重构传统设计模式中的写法,下面是一些示例:一、策略模......
  • 10-Go设计模式-命令模式
    命令模式样例代码/*命令模式将一个请求封装为一个对象,从而让我们可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种......
  • Winform 窗体重命名(改名)后,设计模式对窗体的任何修改都无效,执行结果为改名前的窗体(一个
    (如图)1.新建Winform窗体应用程序  2.窗体设计器不关闭,直接改名 3.设计窗体 4.运行程序,结果(窗体空白) 5.解决方案   5.1丢弃设计,直接关闭设计窗体,重新......
  • 设计原则
    分离关注点分离关注点是开发时的指导原则。此原则主张应根据软件执行的工作类型将软件分离。从体系结构上来说,按此原则有逻辑地构建应用程序应将核心业务行为与基础结构......
  • Tutorial 1_UML与面向对象程序设计基本原则
    [实验任务一]:UML复习阅读教材第一章复习UML,回答下述问题:面向对象程序设计中类与类的关系都有哪几种?分别用类图实例说明。1. 继承关系     继承指的是一个类(称为子......