![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
~Maple~
帅
展开
-
单例模式
单例模式1、单例的定义单例设计模式(Singleton Design Pattern),一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫做单例设计模式,简称单例模式。2、单例的用处从业务概念上,有些数据在系统中只应该保存一份,就比较适合设计为单例类。比如:系统的配置信息类。除此之外,还可以使用单例解决资源访问冲突的问题。3、单例的实现饿汉式:饿汉式的实现方式,在类加载的期间,就已经将instance静态实例初始化好了,所以,instance实例的穿件是线程原创 2021-03-13 22:39:34 · 97 阅读 · 1 评论 -
单一职责
单一职责一、 如何理解单一职责原则(SRP)?单一职责原则:Single Responsibility Principle。 缩写SRP。意思:一个类或模块只负责完成一个职责(或者功能)。单一职责原则是为了实现代码高内聚、低耦合,提高代码的复用性、可读性、可维护性。二、如何判断一个类的职责是否足够单一?不同的应用场景、不同阶段的需求背景、不同的业务层面,对同一个类的职责是否单一,可能会有不同的判定结果。实际上,一些侧面的判断指标更具有指导意义和可执行性,比如,出现下面这些情况就有可能说明这原创 2021-01-25 17:10:20 · 94 阅读 · 0 评论 -
接口隔离原则
接口隔离原则一、如何理解“接口隔离原则”?接口隔离原则:Interface Segregation Principle,缩写为ISP。描述:客户端不应该被强迫依赖它不需要的接口。其中的客户端可以理解为接口的调用者或者使用者。接口理解为下面三种东西:一组API接口集合。单个API接口或函数OOP中的接口概念把“接口”理解为一组API接口集合可以是某个微服务的接口,也可以是某个类库的接口等。如果部分接口只被部分调用者使用,我们就需要将这部分接口隔离出来,单独给这部分调用者使用,而不强原创 2021-01-28 20:22:29 · 348 阅读 · 0 评论 -
开闭原则
开闭原则一、如何理解“对扩展开放、修改关闭”?开闭原则:Open Closed Principle,简称为OCP。描述:软件实体( 模块、类、方法等)应该“对扩展开发、对修改关闭”。解释:添加一个新的功能,应该是通过在已有代码的基础上扩展代码(新增模块,类,方法、属性等),而非修改已有代码(修改模块、类、方法、属性等)的方式完成。注意点:开闭原则并不是说完全杜绝修改,而是以最小的修改代码的代价来完成新功能的开发。同样的代码改动,在粗代码粒度下,可能被认定为“修改”,在细代码粒度下,可能又被原创 2021-01-28 20:22:59 · 57 阅读 · 0 评论 -
控制反转、依赖反转、依赖注入
依赖反转原则一、控制反转控制反转:Inversion Of Control, 缩写为IOC。这里的“控制 ”指的是对程序员执行流程的控制,而“反转”指的是没有使用框架之前,程序员自己控制整个程序的执行。在使用框架之后,整个程序的执行流程可以通过框架来控制。流程的控制权从程序员"反转"到了框架。实现控制反转的方法有很多,有依赖注入等方法,所以控制反转并不是一种具体的实现技巧,而是一个比较笼统的设计思想,一般用来指导框架层面的设计。二、依赖注入依赖注入:Dependency Injection原创 2021-01-28 20:24:18 · 236 阅读 · 0 评论 -
类与类之间的交互关系
类与类之间的交互关系泛化(Generalization)可以简单理解为继承关系。具体到 Java 代码就是下面这样:public class A { ... }public class B extends A { ... }实现(Realization)一般是指接口和实现类之间的关系。具体到 Java 代码就是下面这样:public interface A {...}public class B implements A { ... }聚合(Aggregation)是一种包含关系原创 2021-01-28 20:24:39 · 255 阅读 · 0 评论 -
里氏替换原则
里氏替换原则一、如何理解“里氏替换原则"里氏替换原则:Liskov Substitution Principle,缩写为LSP。描述:子类对象能够替换程序中父类对象出现的任何地方,并且保证原来程序的逻辑行为不变及正确性不被破坏。虽然从定义描述和代码实现上来看,多态和里氏替换原则优点类似,但它们关注的角度是不一样的。多态是面向编程的一大特性,也是面向对象编程语言的一种语法。它是一种代码实现的思路。而里氏替换原则是一种设计原则,是用来指导继承关系中子类该如何设计的,子类的设计要保证替换父类的时候,不改原创 2021-01-28 20:25:12 · 3546 阅读 · 2 评论 -
KISS、YAGNI
KISS、YAGNI原则一、如何理解“KISS”原则?KISS原则:Keep It Simple and Stupid。描述:尽量保持简单。KISS原则是保持代码可读和维护的重要手段。代码足够简单,也就意味着很容易懂,bug比较难隐藏,即便出现bug,修复也比较简单。二、代码函数越少就越“简单”吗?KISS原则是保持代码可读和可维护的重要手段。KISS原则中的“简单”并不是以代码行数来考量的。代码行数越少并不代表代码越简单,我们还要考虑代码的复杂度、实现难度、代码的可读性等。而且,本身就复杂原创 2021-01-30 15:57:30 · 110 阅读 · 0 评论 -
DRY原则
DRY原则一、DRY原则DRY原则:Don’t Repeat Yourselt, 简称DRY。描述:不要重复自己,理解为不要写重复的代码。三种典型的代码重复情况:实现逻辑重复、功能语义重复和代码执行重复。实现逻辑重复,但功能语义不重复的代码。并不违反DRY原则。实现逻辑不重复,但功能语义重复的代码,也算违反DRY原则。代码执行重复也算违反DRY原则。二、什么是代码复用性区分三个概念:代码复用性(Code Reusability)、代码复用(Code Resue)和DRY原原创 2021-01-30 16:05:54 · 3613 阅读 · 1 评论