C# 之设计原则
代码也需要有秩序,就像世界需要秩序,基于SOLID architecture principles。
一、SOLID原则
S.O.L.I.D.是一组面对面向对象设计的最佳实践的设计原则。术语来自Robert C.Martin的著作Agile Principles, Patterns, and Practices in C#,代表了下面五个设计原则:
(1)SRP(Single Responsibility Principle): 单一责任原则;
(2)OCP(Open Closed Principle):开放封闭原则;
(3)LSP(Liskov Substitution Principle): 里氏替换原则;
(4)ISP(Interface Segregation Principle): 接口分离原则;
(5)DIP(Dependency Inversion Principle):依赖倒置原则;
二、各原则解析
1、单一职责
简而言之,SRP就是指单个类应该有且仅有单个职能。
2、开放封闭原则
OCP简单来说就是 对扩展是开放的,对修改是封闭的。
3、里氏代换原则
LSP俗语是:“老鼠的儿子会打洞。”,其实就是子类是和父类有相同的行为和状态,是可以完全替换父类的。这也是保护了OCP的开放扩展关闭修改的原则。
4、接口分离原则
接口分离规则旨在使用多个特定功能的接口来避开通用接口造成的富余化。
5、依赖倒置原则
依赖注入解除了对象和对象的依赖关系,需要其他对象,会有外部直接注入,而你自己不需要关心他如何而来。对象符合OCP原则(对外扩展开放,对修改关闭), 容器负责所有关系匹配。在此层,容器便是这个社会的规则,而对象只需要关心自己所完成的一部分。
总结:
Shivprasad koirala 用一句话总结的SOLID总结:
S:SRP, A class should take care of only one responsibility.
O: OCP, Extension should be preferred over modification(修改,修正).
L: LSP, A parent class object should be able to refer child objects seamlessly(无缝地) during runtime polymorphism(多态,多态性).
I: ISP, Client should not be forced to use a interface if it does not need it.
D: DIP, High level modules should not depend on low level modules but should depend on abstraction.