深入浅出面向对象SOLID原则(6)
在软件设计中,OCP 提倡对修改关闭,对扩展开放。建议为你的服务调用者提供一个他需要的抽象、高层次的行为接口,后期你的服务有新的种类,你只需要新增一个实现该抽象、高层次接口具体服务,而不需要修改调用者的使用方式。
创业故事回顾从袁Sir的故事中可以看出来,袁Sir在不同阶段之所以面临各种不同的痛点,主要原因有两点:
关注的事情太多
关注事情的细节
创业初期,袁Sir这么做问题不大,公司在不断地发展壮大(如同软件的演变),袁Sir就需要琢磨出新的方案,而这些方案的核心观念无非两个:
分离关注点
引入中间人
在面向对象软件设计中,关注点分离,其实体现的就是软件设计的精髓 – 高内聚,低耦合,引入一个中间人 则跟 面向抽象编程 有异曲同工之处。
写在最后SOLID原则,它其实是在帮助指导我们设计出_高内聚,低耦合_ 的软件,降低软件后期的维护成本。虽然原则不能时刻有效指导编码落地,理解这些原则背后的设计理念,让你迈出了第一步,接下来,你需要做的是在前进的路上,不断地进行编码实践、思考总结,将其内化。
最后,我想跟技术人员共享一个关键词汇 – 用户视角/业务视角:
我们学到了的很多技巧(设计原则、设计模式、重构手法等),如果忘记初衷,失去目标,代码写得再炫酷、再健壮,也很难体现出应有的价值。从业务需求出发,以用户视角看问题,致力编写出 简洁可用 的代码即可。
创业故事回顾从袁Sir的故事中可以看出来,袁Sir在不同阶段之所以面临各种不同的痛点,主要原因有两点:
关注的事情太多
关注事情的细节
创业初期,袁Sir这么做问题不大,公司在不断地发展壮大(如同软件的演变),袁Sir就需要琢磨出新的方案,而这些方案的核心观念无非两个:
分离关注点
引入中间人
在面向对象软件设计中,关注点分离,其实体现的就是软件设计的精髓 – 高内聚,低耦合,引入一个中间人 则跟 面向抽象编程 有异曲同工之处。
写在最后SOLID原则,它其实是在帮助指导我们设计出_高内聚,低耦合_ 的软件,降低软件后期的维护成本。虽然原则不能时刻有效指导编码落地,理解这些原则背后的设计理念,让你迈出了第一步,接下来,你需要做的是在前进的路上,不断地进行编码实践、思考总结,将其内化。
最后,我想跟技术人员共享一个关键词汇 – 用户视角/业务视角:
我们学到了的很多技巧(设计原则、设计模式、重构手法等),如果忘记初衷,失去目标,代码写得再炫酷、再健壮,也很难体现出应有的价值。从业务需求出发,以用户视角看问题,致力编写出 简洁可用 的代码即可。