软件构造 面向对象设计原则:SOLID

为了提高我们程序的可维护性,我们希望能进行高内聚,低耦合的模块化编程。

耦合是不同模块间的联系,降低模块的耦合,就像积木一样,我们可以更轻松的组合各个模块,同样一个模块出现异常影响较小,我们可以更轻松地进行替换或修改。

高内聚则是尽可能让一个模块只负责一个任务,达到最大限度的聚合。

下面我们介绍面向对象设计原则solid

1.SRP 单一责任原则:不应该有多于 1 个原因让你的 ADT 发生变化, 否则就拆分开。也就是说尽量让一个类只负责一个职责。比如汽车要启动,刹车,接送乘客,那么这个类就包含了太多的职责,可以将接送乘客的行为交给司机,这样就实现了程序更高内聚更低耦合的目的。

2.OCP:面向变化的开放/封闭原则

对扩展性的开放:模块的行为应是可扩展的,从而该模块可表现出新的行为以满足需求的变化

对修改的封闭性:模块自身的代码是不应被修改的,扩展模块行为的一般途径是修改模块的内部实现

对代码频繁修改不是好的习惯,比如要写出租车这一类,可以先写car接口或抽象类,这样程序更加容易修改或者扩展。

3.关键的解决方案:抽象技术 LSP:Liskov 替换原则

4.ISP:接口隔离原则 不能强迫客户端依赖于它们不需要的接口:只提供必需的接口

也就是说接口要低耦合,如果一个接口里含有的方法过多,类对其进行继承时,会需要实现很多的多余方法,可以将其写成多个高内聚的接口,这样减少了多余调用,提高了灵活性

DIP:依赖转置原则 抽象的模块不应依赖于具体的模块 ,具体应依赖于抽象,一个类依赖于另一个类最好依赖于接口而非具体实现。

一些方法最好针对抽象类而非具体实例,比如开出租车,方法可以针对开车,这样开不同车都只要改客户端方法,更方便也更容易修改。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值