设计模式-软件架构设计七大原则及开闭原则详解

本文介绍了软件架构设计的七大原则,包括开闭原则、单一职责原则、依赖倒置原则等,并通过举例说明了如何在实际开发中遵循开闭原则,以实现对扩展开放、对修改关闭的设计目标。文章强调理论结合实践,后续还将探讨剩余六大原则和23种设计模式。
摘要由CSDN通过智能技术生成

前言
在日常工作中,我们使用Java语言进行业务开发的时候,或多或少的都会涉及到设计模式,而运用好设计模式对于我而言,又是一个比较大的难题。为了解决、克服这个难题,Remi酱特别开了这个博客来记录自己学习的笔记和自己的理解,也欢迎对此有兴趣的朋友一起来和博主探讨,共同学习。
一、软件架构设计模式的七大原则
1、开闭原则
对扩展开放,对修改关闭。在程序需要扩展的时候,不能去修改原有的代码实现一个热插拔的效果。简而言之,就是用抽象构建架构,用实现扩展细节。

2、单一职责原则
不要存在多于一个导致类变更的原因。简单来说,就是 一个Class/Interface/Method只负责一项职责 。

3、依赖倒置原则
这个原则是开闭原则的基础,是指设计结构代码时,高层模块不应该依赖于底层模块,二者应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。即: 针对接口编程,依赖于抽象而不依赖于具体 。

4、接口隔离原则
使用多个接口,而不使用单一的接口,客户端不应该依赖它不需要的接口。尽量的 细化接口的职责,降低类的耦合度 。

5、迪米特法则
又被成为 最少知道原则 ,指的是一个对象应该对其他对象保持最少的了解。一个实体类应当尽量少地和其他实体之间发生相互作用,使得系统模块相互独立。形象来说就是:只和朋友交流,不和陌生人说话。

6、里氏替换原则
如果说实现开闭原则的关键步骤就是抽象化,那么基类(父类)和子类的继承关系就是抽象化的具体实现,所以里氏替换原则就是对实现抽象化的具体步骤的规范。即:子类可以扩展基类(父类)的功能,但不能改变父类原有的功能。

7、合成复用原则
尽量使用对象组合/聚合,而不是使用继承达到软件复用的目的。可以使系统更加的灵活,降低类与类之间的耦合度,一个类的变化对于其他类来说影响相对较少。

继承我们称之为白箱复用,相当于把实现的细节暴露给子类,组合/聚合 也成为黑箱复用,对类之外的对象是无法获取到实现细节的。

二、开闭原则详解
对扩展开放,对修改关闭。在程序需要扩展的时候,不能去修改原有的代码实现一个热插拔的效果。简而言之,就是用抽象构建架构,用实现扩展细节。

光看理论是不行的,这样的话我们只能是有一个模糊的认识,对具体的细节不太能看得清,我们先来举一个例子看一看它是怎么使用的:

例:假如我们居住的附近有一个小超市开业了,里面有各种的商品。老板想找你帮忙做一个超市商品的管理系统,那么针对超市众多商品的情况,我们首先应该会想到创建一个类来显示商品的基本信息:价格、名称等, 针对此,我们先来创建一个接口:

/**
 * 商品基本信息 接口
 */
public interface Goods {
   
    /**
     * 商品的价格
     */
    void getPrice();

    /**
     * 商品的名称
     */
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值