面向对象设计原则


可以概述为:降低耦合,易于扩展,方便复用;
设计原则,最基本的,就是SOLID(缩写),这五项原则

S  = 单一责任原则
O = 开闭原则
L  = Liscov替换原则
I  = 接口隔离原则
D = 依赖倒置原则



S  = 单一责任原则

一个类有且只有一个职责

从面向对象角度解释是:
"导致类变化的因素永远不要多于一个。"
或者换个说法:"一个类有且只有一个职责"。

如果有多于一个原因会导致你的类改变(或者它的职责多余一个),你就需要根据其职责把这个类拆分为多个类。
每个职责都是轴向变化;
如果类包含多个职责,代码会变得耦合;

O = 开闭原则

对扩展开放,对修改关闭

设计规则如下:
“软件实体(类,模块,函数等)应该对扩展开放,对修改关闭。”

抽象是关键
要对系统的核心业务进行抽象, 如果你抽象化做的比较好, 很可能, 在扩展功能的时候它们不必做任何改变 

L  = Liscov替换原则

原则描述了:
"子类型必须能够替换它们的基类."

继承必须确保超类所拥有的性质在子类中仍然成立。
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系

换句话说:
"使用基类引用的函数必须能够使用派生类而无须了解派生类."
子类可以扩展父类的功能,但不能改变父类原有的功能。

里氏替换原则如此重要:
如果不遵循 LSP原则,类继承就会混乱。如果子类实例被作为参数传递给方法,后果难以预测。
如果不遵循 LSP原则,基于父类编写的单元测试代码将无法成功运行子类。

I  = 接口隔离原则

用户不应该被迫依赖他们不使用的接口。
在设计接口时,只暴露必要的,而不是所有的。


D = 依赖倒置原则

高层次的模块不应该依赖于低层次的模块,而是,都应该依赖于抽象。

我们设计的实体应该依赖于抽象,而不是依赖于某个具体的实体模块。

如:某牌子的车,依赖的轮子规格为200的轮子,只要是设计规格为200的轮子,都可以装上去。



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值