可以概述为:降低耦合,易于扩展,方便复用;
设计原则,最基本的,就是SOLID(缩写),这五项原则
S = 单一责任原则
O = 开闭原则
L = Liscov替换原则
I = 接口隔离原则
D = 依赖倒置原则
S = 单一责任原则
一个类有且只有一个职责从面向对象角度解释是:
"导致类变化的因素永远不要多于一个。"
或者换个说法:"一个类有且只有一个职责"。
如果有多于一个原因会导致你的类改变(或者它的职责多余一个),你就需要根据其职责把这个类拆分为多个类。
每个职责都是轴向变化;
如果类包含多个职责,代码会变得耦合;
O = 开闭原则
对扩展开放,对修改关闭设计规则如下:
“软件实体(类,模块,函数等)应该对扩展开放,对修改关闭。”
抽象是关键
要对系统的核心业务进行抽象, 如果你抽象化做的比较好, 很可能, 在扩展功能的时候它们不必做任何改变
L = Liscov替换原则
原则描述了:"子类型必须能够替换它们的基类."
继承必须确保超类所拥有的性质在子类中仍然成立。
当一个子类的实例应该能够替换任何其超类的实例时,它们之间才具有is-A关系
换句话说:
"使用基类引用的函数必须能够使用派生类而无须了解派生类."
子类可以扩展父类的功能,但不能改变父类原有的功能。
里氏替换原则如此重要:
如果不遵循 LSP原则,类继承就会混乱。如果子类实例被作为参数传递给方法,后果难以预测。
如果不遵循 LSP原则,基于父类编写的单元测试代码将无法成功运行子类。
I = 接口隔离原则
用户不应该被迫依赖他们不使用的接口。在设计接口时,只暴露必要的,而不是所有的。
D = 依赖倒置原则
高层次的模块不应该依赖于低层次的模块,而是,都应该依赖于抽象。我们设计的实体应该依赖于抽象,而不是依赖于某个具体的实体模块。
如:某牌子的车,依赖的轮子规格为200的轮子,只要是设计规格为200的轮子,都可以装上去。
1340

被折叠的 条评论
为什么被折叠?



