【每天一个java设计模式(零)】 - 设计模式基本概念及七大设计原则

简介: 设计模式基本概念及七大设计原则

设计模式概述

设计模式是什么?

  • 它是软件开发人员在软件开发过程中经过相当长的一段时间的试验和错误总结出来的面临的一般问题的解决方案;
  • 它是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结;
  • 它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。

设计模式能干什么?

  • 实现代码的可重用性
  • 增加代码的可维护性
  • 减低代码的被理解难度
  • 保证代码的可靠性
  • 增加系统的健壮性
  • 易修改可扩展

设计模式七大设计原则

1. 开闭原则

对扩展开放,对修改关闭。当应用的需求改变时,在不修改软件实体的源代码或者二进制代码的前提下,可以扩展模块的功能,使其满足新的需求。它使软件实体拥有一定的适应性和灵活性的同时具备稳定性和延续性。

2. 单一职责原则

单一职责原则规定一个类应该有且仅有一个引起它变化的原因,否则类应该被拆分。

也就是说,单一职责原则就是自己只负责自己的事,不需要理会别人的事。在面对对象编程中,每个对象只负责自己的任务,这样的开发方式代码耦合度较低,较灵活,易扩展。

3. 里氏替换原则

里氏替换原则是面向对象设计的基本原则之一。里氏替换原则规定继承必须确保超类所拥有的性质在子类中仍然成立。里氏替换原是继承复用的基础,它反映了基类与子类之间的关系,是对实现抽象化的具体步骤的规范,是实现开闭原则的方式之一。

4. 依赖倒转原则

依赖倒转原则规定针对接口编程,依赖于抽象而不依赖于具体,要面向接口编程,不要面向实现编程。
依赖倒转原则是实现开闭原则的重要途径之一,它降低了用户与实现模块之间的耦合度。

5. 接口隔离原则

接口隔离原则要求开发者尽量将庞大的接口拆分成更小的更具体的接口,一个类对另一个类的依赖应该建立在最小的接口上。要为各个类建立它们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。

6. 合成复用原则

在软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则(继承必须确保超类所拥有的性质在子类中仍然成立)。

7. 迪米特原则

迪米特法则又叫作最少知识原则,一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。

一句话总结设计原则就是要降低对象的耦合度,增加程序的可复用、扩展和维护性。

23种设计模式

根据模式是用来完成什么工作来划分,可分为创建型模式、结构型模式和行为型模式 3 种类型。
在这里插入图片描述
其中工厂方法模式、适配器模式、模板方法模式、解释器模式四种模式,是用于处理类与子类之间的关系,这些关系通过继承来建立,是静态的,在编译时刻便确定下来了。其他的模式都是用于处理对象之间的关系,这些关系可以通过组合或聚合来实现,在运行时刻是可以变化的。

目录
相关文章
|
6天前
|
算法 Java 数据库连接
Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性
本文详细介绍了Java连接池技术,从基础概念出发,解析了连接池的工作原理及其重要性。连接池通过复用数据库连接,显著提升了应用的性能和稳定性。文章还展示了使用HikariCP连接池的示例代码,帮助读者更好地理解和应用这一技术。
16 1
|
12天前
|
设计模式 Java 程序员
[Java]23种设计模式
本文介绍了设计模式的概念及其七大原则,强调了设计模式在提高代码重用性、可读性、可扩展性和可靠性方面的作用。文章还简要概述了23种设计模式,并提供了进一步学习的资源链接。
29 0
[Java]23种设计模式
|
28天前
|
设计模式 监控 算法
Java设计模式梳理:行为型模式(策略,观察者等)
本文详细介绍了Java设计模式中的行为型模式,包括策略模式、观察者模式、责任链模式、模板方法模式和状态模式。通过具体示例代码,深入浅出地讲解了每种模式的应用场景与实现方式。例如,策略模式通过定义一系列算法让客户端在运行时选择所需算法;观察者模式则让多个观察者对象同时监听某一个主题对象,实现松耦合的消息传递机制。此外,还探讨了这些模式与实际开发中的联系,帮助读者更好地理解和应用设计模式,提升代码质量。
Java设计模式梳理:行为型模式(策略,观察者等)
|
1月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP开发领域,设计模式是解决常见问题的高效方案集合。它们不是具体的代码,而是一种编码和设计经验的总结。单例模式作为设计模式中的一种,确保了一个类仅有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的基本概念、实现方式及其在PHP中的应用。
单例模式在PHP中的应用广泛,尤其在处理数据库连接、日志记录等场景时,能显著提高资源利用率和执行效率。本文从单例模式的定义出发,详细解释了其在PHP中的不同实现方法,并探讨了使用单例模式的优势与注意事项。通过对示例代码的分析,读者将能够理解如何在PHP项目中有效应用单例模式。
|
27天前
|
设计模式 Java
Java设计模式
Java设计模式
25 0
|
1月前
|
设计模式 Java
Java设计模式之外观模式
这篇文章详细解释了Java设计模式之外观模式的原理及其应用场景,并通过具体代码示例展示了如何通过外观模式简化子系统的使用。
26 0
|
1月前
|
设计模式 Java
Java设计模式之桥接模式
这篇文章介绍了Java设计模式中的桥接模式,包括桥接模式的目的、实现方式,并通过具体代码示例展示了如何分离抽象与实现,使得两者可以独立变化。
41 0
|
1月前
|
设计模式 Java
Java设计模式之适配器模式
这篇文章详细讲解了Java设计模式中的适配器模式,包括其应用场景、实现方式及代码示例。
39 0
|
4天前
|
设计模式 安全 Java
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
Kotlin教程笔记(51) - 改良设计模式 - 构建者模式
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。