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

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

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



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

热门文章

最新文章

  • 1
    C++一分钟之-设计模式:工厂模式与抽象工厂
    42
  • 2
    《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
    46
  • 3
    C++一分钟之-C++中的设计模式:单例模式
    54
  • 4
    《手把手教你》系列基础篇(九十三)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-上篇(详解教程)
    38
  • 5
    《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
    62
  • 6
    Java面试题:结合设计模式与并发工具包实现高效缓存;多线程与内存管理优化实践;并发框架与设计模式在复杂系统中的应用
    57
  • 7
    Java面试题:设计模式在并发编程中的创新应用,Java内存管理与多线程工具类的综合应用,Java并发工具包与并发框架的创新应用
    41
  • 8
    Java面试题:如何使用设计模式优化多线程环境下的资源管理?Java内存模型与并发工具类的协同工作,描述ForkJoinPool的工作机制,并解释其在并行计算中的优势。如何根据任务特性调整线程池参数
    50
  • 9
    Java面试题:请列举三种常用的设计模式,并分别给出在Java中的应用场景?请分析Java内存管理中的主要问题,并提出相应的优化策略?请简述Java多线程编程中的常见问题,并给出解决方案
    106
  • 10
    Java面试题:设计模式如单例模式、工厂模式、观察者模式等在多线程环境下线程安全问题,Java内存模型定义了线程如何与内存交互,包括原子性、可见性、有序性,并发框架提供了更高层次的并发任务处理能力
    78