架构师训练营第一期第二周学习总结

用户头像
朱磊
关注
发布于: 2020 年 09 月 27 日

面向对象设计经典的SOLID五大原则很早之前我就听说过,但是知易行难,看过一遍之后只知道要这么做,却不知道为什么要这么做,以及在什么情况下会需要这样做。智慧老师这一周的视频对这五大原则做了很具体详尽的阐释,在此说一说我学到的一些心得感悟。



开闭原则

开闭原则是说我们在开发设计软件的时候,要考虑到功能的扩展性,对于我们预计到可能会发生变化的地方,要允许通过增加代码去扩展功能,而不是修改已有的代码。我的理解是开闭原则是在软件扩展性这个维度上我们要达到的一个目标,也是衡量软件是否具有良好扩展性的一个检验标准。手段就是定义接口,将功能定义为接口的规约,那么只要在满足接口规约的前提下,可以有各种各样的实现方式。



依赖倒置原则

见命题作业



里氏替换原则

里氏替换原则里有一点是我之前没有听到过的,在这次课程中学到的,那就是看一个子类能不能替换父类不是看是不是在概念上"is a”就行的,而是要看在系统中所有用到父类的情景中,是不是都可以用子类去替换。智慧老师举的例子小马也是马,但是不能让人骑,还有正方形在计算面积时和长方形计算面积的结果不兼容的例子,都很好地解释了这一要求。所以,能不能替换不能拍脑袋,还是要看是否能保证系统功能的兼容。



单一职责原则,接口隔离原则

智慧老师举了一个Modem的例子,指出一个Modem不容易满足单一职责的原则,因此要靠定义不同的接口来将不同的职责分开。这让我想到了架构的过程就是在做权衡。高内聚低耦合大家都知道都想要,但是很多时候可能满足了其中一点就不能满足另外一点,或者说满足其中一点更多,那么另外一点就要被满足得少了。那么到底给两边分配多少比例,可能真的要靠所谓的“艺术”,而不是“技术”了。

发布于: 2020 年 09 月 27 日 阅读数: 13
用户头像

朱磊

关注

还未添加个人签名 2017.12.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第一期第二周学习总结