设计模式原理还不知道吗?这篇让你彻底明白

简介: 设计模式原理还不知道吗?这篇让你彻底明白

1.谈谈你对设计模式的理解


1.首先谈设计模式的作用:经验的传承,提高了软件复用的水平,最终达到提高软件开发效率


设计原则 简单说明
单一职责 一个类只负责一项职责
里氏替换原则 子类可以扩展父类的功能,但不能改变父类原有的功能
依赖倒置原则 要依赖于抽象,不要依赖于具体,核心思想是面向接口编程
接口隔离原则 建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法尽量少
迪米特法则 (最少知道原则) 一个对象应该对其他对象保持最少的了解
开闭原则 对扩展开放,对修改关闭



(1)单一职责原则有什么好处


  1. 类的复杂性降低,实现什么职责都有清晰明确的定义;


  1. 读性提高,复杂性降低,那当然可读性提高了;


  1. 可维护性提高,可读性提高,那当然更容易维护了;


  1. 变更引起的风险降低,变更是必不可少的,如果接口的单一职责做得好,一个接 口修改只对相应的实现类有影响,对其他的接口无影响,这对系统的扩展性、维护 性都有非常大的帮助。



(2)里氏替换原则好处


  1. 子类必须完全实现父类的方法


  1. 子类可以有自己的个性


  1. 覆盖或实现父类的方法时输入参数可以被放大


  1. 覆写或实现父类的方法时输出结果可以被缩小




(3)依赖倒置原则好处


  1. 依赖倒置原则可以降低类间的耦合性。


  1. 依赖倒置原则可以提高系统的稳定性。


  1. 依赖倒置原则可以减少并行开发引起的风险。


  1. 依赖倒置原则可以提高代码的可读性和可维护性。



(4)接口隔离原则好处


  1. 接口隔离原则是为了约束接口降低类对接口的依赖性


  1. 接口隔离提高了系统的内聚性,减少了对外交互,降低了系统的耦合性


  1. 能减少项目工程中的代码冗余。过大的大接口里面通常放置许多不用的方法,当实现这个接口的时候,被迫设计冗余的代码。



(5)迪米特原则好处


  1. 降低了类之间耦合度,提高了模块的相对独立性。


  1. 亲和度降低,提高了类的可复用率和系统的扩展性。



(6)开闭原则好处


  1. 使变化中的系统有一定的适应性和灵活性。通过扩展已有的软件系统,提供新的功能,满足新的需求。


  1. 使变化中的软件系统有一定的稳定性和延续性。已有的软件模块,特别是抽象层模块不能修改。




2.设计模式的分类


image.png

3.创建型模式:都是用来帮助我们创建对象的!

image.png



4.结构性模式:关注对象和类的组织

image.png


5.行为型模式:关注系统中对象之间的相互交换,研究系统在运行时对象之间的相互通信和协作,进一步明确对象的职责,共有11中模式

image.png



相关文章
|
4天前
|
设计模式 安全 Java
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
【分布式技术专题】「Tomcat技术专题」 探索Tomcat技术架构设计模式的奥秘(Server和Service组件原理分析)
40 0
|
7月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——备忘录模式Memento(原理讲解+应用场景介绍+案例介绍+Java代码实现)
58 0
|
7月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——迭代器模式Iterator(原理讲解+应用场景介绍+案例介绍+Java代码实现)
29 0
|
7月前
|
设计模式 存储 Java
【设计模式——学习笔记】23种设计模式——享元模式Flyweight(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——享元模式Flyweight(原理讲解+应用场景介绍+案例介绍+Java代码实现)
29 0
|
4天前
|
设计模式 消息中间件 Java
Java 设计模式:探索发布-订阅模式的原理与应用
【4月更文挑战第27天】发布-订阅模式是一种消息传递范式,被广泛用于构建松散耦合的系统。在 Java 中,这种模式允许多个对象监听和响应感兴趣的事件。
39 2
|
4天前
|
设计模式 算法 Java
Java 设计模式:深入模板方法模式的原理与应用
【4月更文挑战第27天】模板方法模式是一种行为设计模式,主要用于定义一个操作中的算法的框架,允许子类在不改变算法结构的情况下重定义算法的某些特定步骤。
23 1
|
7月前
|
设计模式 Java 数据库连接
【设计模式——学习笔记】23种设计模式——外观模式Facade(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——外观模式Facade(原理讲解+应用场景介绍+案例介绍+Java代码实现)
51 0
|
7月前
|
设计模式 Java 应用服务中间件
【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——职责链/责任链模式(Chain of Responsibility)(原理讲解+应用场景介绍+案例介绍+Java代码实现)
83 0
|
7月前
|
设计模式 算法 Java
【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
61 0
|
7月前
|
设计模式 Java 开发者
【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——状态模式State(原理讲解+应用场景介绍+案例介绍+Java代码实现)
48 0