(二)架构基础知识

软件设计原则与分层

软件设计原则

单一职责原则

永远不应该有多余一个原因来改变某个类
理解:对于一个类而言,应该仅有一个引起它变化的原因
应用:如果一个类拥有了两种职责,那就可以将这个类分成两个类

开放封闭原则

软件实体扩展应该是开放的,但对于修改应该是封闭的
理解:对扩展开放,对修改封闭,可以去扩展类,但不要去修改类
应用:当需求有改动,尽量用继承或组合的方式来扩展类的功能,而不是直接修改类的代码

里氏替换原则

理解:父类一定能够被子类替换

最少知识原则

只与你最直接的对象交流
理解:低耦合,高内聚
应用:做系统设计时,尽量减少依赖关系

接口隔离原则

一个类与另一个类之间的依赖性,应该依赖于尽可能小的接口
理解:不要对外暴露没有实际意义的接口。用户不应该依赖它不需要的接口
应用:当需要对外暴露接口时,如果是非必要对外提供,尽量删除

依赖倒置原则

高层模块不应该依赖低层模块,它们应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象
理解:应该面向接口编程,不应该面向实现类编程
并不是说,所有的类都要有一个对应的接口,而是说,如果有接口,那就尽量使用接口来编程吧

总结

将以上六大原则的英文首字母拼在一起就是SOLID(稳定的),所以也称之为SOLID原则
只有满足了这六大原则,才能设计出稳定的软件架构!

补充设计原则

  • 组合/聚合复用原则
    当要扩展类的功能时,优先考虑使用组合,而不是继承
    该原则在23中典型设计模式中频繁使用
    如:代理模式、装饰模式、适配器模式等
  • 无环依赖原则
    当A模块依赖于B模块,B模块依赖于C模块,C模块依赖于A模块,此时将出现循环依赖
    在设计中避免该问题,可通过引入“中介者模式”解决
  • 共同封装原则
    应该将易变的类放在同一个包里,将变化隔离出来
    该原则是“开放-封闭原则”的诞生
  • 共同重用原则
    如果重用了包中的一个类,那么也就相当于重用了包中的所有类,我们要尽可能减少包的大小
  • 好莱坞原则
    Don"t call me, I"ll call you
    “控制反转”(或称为“依赖注入”)
    不需要主动创建对象,而是由容器帮我们来创建并管理这些对象
  • 不重复原则
    不要让重复的代码到处都是,要让它们足够的重用,所以要尽可能地封装
  • 保持它简单与傻瓜
    保持系统界面简洁,功能实用,操作方便
  • 高内聚与低耦合
    模块内部需要做到内聚度高,模块之间需要做到耦合度低
  • 关注点分离
    将一个复杂的问题分离为多个简单的问题,然后逐个解决
    难点:如何进行分离
  • 你不需要它
    不要一开始就把系统设计得非常复杂,不要陷入“过度设计”的深渊
    让系统足够简单,而不失扩展性
<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值