训练营 - 第二周 - 作业二
面向过程 or 面向对象
2 种编程方法各有其优缺点。
在需求简单、协作少时,面向过程效率更高;在需求复杂、多人协作下,面向对象是更好的选择。
面向过程的本质是面向逻辑,在大规模系统开发中,面向过程的编程方式会导致系统越来越耦合,系统越来越像一个线团。
常见的比如订单系统,要支持各种各样的支付方式,同时支付规则、分摊方式也是个不相同,如果不能很好的抽象,那么这块的需求变更简直是噩梦般的存在。
领域驱动设计 DDD
我们常说要面向对象进行设计,但是到底改如何设计、怎么样才是好的设计,每个人的理解是不一致的。
DDD 提出了一整套方法来规范这个过程,保证最终结果。
常用的设计原则
开闭原则
对扩展开放,对修改关闭;不修改,从而保证历史逻辑的正确性。
依赖倒置原则
里式替换原则
单一职责原则
接口分离原则
这些原则要牢记在心,设计时想想是否满足这些原则,当你发现自己的设计都满足这些条件时,那么说明你的设计很优秀了。
Flower 框架设计
Flower 框架设计符合依赖倒置原则,底层实现抽象;符合单一职责原则,Service 只用来处理 process;符合里式替换原则,FlowerService 下的实现可以互相替换。
思考
业界流行框架比如 Spring Netty Tomcat 都设计的很好,在研读这些框架代码时一定不要陷入细节,要从整体去思考这些框架是如何设计与实现。
评论