软件架构设计原则

目录

开篇

开闭原则

依赖倒置原则

单一职责原则

接口隔离原则

迪米特原则(最少知道原则)

李氏替换原则

合成复用原则


 

开篇

学习设计原则是学习设计模式的基础。在实际开发过程中,并不要
求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量,不
能刻意追求完美,但要在适当的场景遵循设计原则,这体现的是一种平
衡取舍,可以帮助我们设计出更加优雅的代码结构

开闭原则

      一个软件实体(类,模块,函数)应该是对扩展开放,对修改关闭。强调用抽象构建框架,用实现扩展细节,可以提高软件系统的稳定性和可复用性(抽象的好处)。开闭原则的核心思想就是面向抽象编程

依赖倒置原则

      设计代码结构的时候,高层模块不应该依赖底层模块,二者都应该依赖抽象。抽象不应该依赖细节,细节应该依赖抽象。依赖倒置的核心思想是高低层之间通过抽象依赖,细节依赖抽象

可以减少类与类之间的耦合,提高系统的稳定性,提高代码的可读性和可维护性,并且能够降低修改代码所带来的风险。

demo:

tom学习课程, tom作为高层模块,依赖课程模块,tom不能直接依赖学习java和学习mysql,这违背了依赖倒置原则,所以tom应该依赖课程的抽象;

低层课程是抽象,包含的具体课程java,mysql等是细节,细节依赖抽象才符合依赖倒置原则。

单一职责原则

将每个职责都用一个类来实现进行解耦,这样后期需求变更后维护互不受影响。核心思想就是根据功能拆成多个类或者拆分成多个方法,面向对象

接口隔离原则

客户端不应该依赖其不需要的接口,提供专用的接口,而不使用单一的总接口。设计接口时应该注意以下几点:

  1. 一个类对另一个类的依赖应该建立在最小接口上;
  2. 建立单一接口,不要建立臃肿庞大的接口;
  3. 尽量新华接口,接口中的方法越少越好;

接口隔离原则的优点:符合高内聚,低耦合的特点,可以使类具有很好的可读性,可扩展性和可维护性。

缺点是需要我们花时间去考虑业务模型,包括对以后可能发生变更的地方做一些判断,需要我们对抽象、对业务模型的理解足够理解。

迪米特原则(最少知道原则)

只和朋友交流,不和陌生人说话。尽量降低类与类之间的耦合度。

朋友: 成员变量,方法出入参中的类;方法体内的类不属于朋友(方法内new出来的对象)。

demo:

MVC的controller不能直接访问陌生人DAO,而要通过朋友service访问。

里氏替换原则

      子类对象可以扩展父类的功能,但是不能改变父类的原有功能。所有使用父类的地方必须可以完全用其子类替换,且不影响原有功能。只存在于父子类之间。

优点:符合开闭原则, 可以约束继承泛滥;代码变更时能降低需求变更带来的风险,提高代码兼容性、可维护性扩展性和健壮性。

合成复用原则

尽量使用对象的组合/聚合而不是继承来达到软件复用的目的。

优点:可以使系统更灵活,降低类耦合度

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值