买 设计模式 这本书已经快半年了,看着崭新的书,心里还有很愧疚的,趁着过年,没啥开发任务。就把最近零零碎碎的知识总结下。
面向对象的六大原则,一些在平常开发中,跟着老大的风格写代码,无意识中肯定遵守了一些原则,只是意识中知道这样写代码很有调理。具体为什么,不太清楚。
1、优化代码的第一步 —— 单一职责原则
2、让程序更加稳定,灵活 —— 开闭原则
3、构建扩展性更好的系统 —— 里氏替换原则
4、让项目拥有变化的能力 —— 依赖倒置原则
5、系统有更高的灵活性 —— 接口隔离原则
6、更好的可扩展原则 —— 迪米特原则
我可能分别使用几篇来介绍几个原则,如果是面试装逼,我感觉记住这6个名词应该就可以应付过去,如果想要更了解六大原则,那么最好去买一本 设计模式这本书。肯定比看我的博客详细,学到的全。我呢,只是在这里打发下时间,强迫自己看几页书,为明年跳槽增加点 砝码。
单一职责原则
就一个类而言,应该仅有一个引起它变化的原因, 一个类中应该是一组相关性很高的函数,数据的封装。
这个原则是最好理解,也是具有争议的一个原则。因为没有具体的尺度。取决去你雄辩能力。
例如:一个加载图片功能。
新手:写一个图片加载类,
有点责任的:可能会考虑下图片的缓存问题,优化一下。
知道单一原则的人:会把加载图片放在一个类中,处理图片缓存放在一个类中。
开闭原则
软件中的对象 模块 类 函数 应该对于扩展是开放,但是对于修改是封闭的。
程序一旦开发完成,程序中一个类的实现只应该因错误而被修改,,新的或者改变的特性应该通过新建不同的类实现,新建的类可以通过集成的方式来重用原类中代码。
再开发中,有点扯淡。但是在与修改外包的代码,想不被各种坑爹,你最好遵循这个开闭原则。我就是被坑了无数次。。。。。。。
里氏替换原则
所有引用积累的地方必须能透明地使用其子类对象。——这个显得比较牛逼,所有字我都认识,但是组成句子我就不懂了。
依赖倒置原则
高层模块不应该依赖底层模块,两者都应该依赖其抽象;
抽象不应该依赖细节;
细节应该依赖抽象;
接口隔离原则
客户端不应该依赖它不需要的接口。
类与类之间的依赖关系应该建立在最小的接口上。
迪米特原则
一个对象应该对其他对象有最少的了解。
知难行易——成功秘诀是坚持不懈
知易行难——成功秘诀是脚踏实地