在这篇博文中,将给大家简要介绍一下SOLID的面向对象的设计与实现的基本原则。其实这个需要自己做项目和看代码的体会,个人经验觉得还是比较有用的。
什么是SOLID
SOLID是面向对象设计与实现的时候推荐的一个基本的原则,分别是Single Responsibility Principle(单一职能原则),Open Close Principle(开放封闭原则), Liskov’s Substitution Principle (里氏替换原则),Interface Segregation Principle(接口分离原则)与Dependency Inversion Principle (依赖倒置原则)的英文首字母的大写缩写而来。接下面会简要介绍一些这些原则的基本概念,有一些是自己的理解。
单一职能原则
- One Responsibility
单一职能讲的是一个类,接口或者方法仅仅有一个职能,这个职能可以很大,也可以很小,但是你可以用一句话就能说明,不是大而全的。 其实设计模式中单体,或者工厂模式就体现了这一点,单体类的职能就是确保仅仅只有一个类被创建出来。而工厂模式的职能就是封装了类的创建。 - One Reason to Change
一个类仅仅只有一个理由去变化,当职能唯一的时候,仅仅是因为职能的变化,你的类的实现才可以发生变化。比如说工厂类,你需要创建的对象需要变化了,你的代码才需要跟着改变。
开放封闭原则
开放封闭将的是任何软件实体如类,模块(一般是动态链接库),方法,接口等应该对扩展开放,而关闭修改。具体的意思就是说,我们应该是以“增加”的方式来应对修改,举个例子:当我们要增加一个新功能的时候,有一个函数提供了类似的功能,这个时候很多人都习惯比这个函数扩展一个参数什么的,增加if-else的程序结构框架去处理这样的情况,这个做法就违背了Open -Close原则,正确的做法应该是增加一个方法来完成,有人问这样可能有很多重复代码啊? 这个应该是自己重新写一个私有方法去封装 共性的代码去解决, 以确保原来的方法保