第二周作业
什么是依赖倒置原则,为什么又称为好莱坞原则
答:分层架构中,高层依赖低层,而依赖倒置原则:高层不应依赖低层,低层也不应依赖高层,两者均应该依赖于一个由高层定义的抽象。抽象不能依赖于实现,实现依赖抽象。
在编写框架时,为了达到复用框架代码、框架代码不依赖具体实现,应使用依赖倒置原则,由框架定义接口供低层来实现。框架通过接口调用实现功能,而实现不能调用框架代码。这就称为好莱坞原则
应用程序使用 ICache 接口使用缓存功能;后台管理系统使用 Iconfigurable 接口推送配置重建缓存
学习总结
2.1 从编程历史看面向对象编程的本质与未来
编程的目的是用计算机来解决现实世界的问题。变成的过程是在问题空间和解空间建立联系。将领域问题分析抽象为模型,通过软件系统实现模型解决问题。
面向对象的程序设计,通过直接表达问题空间内的元素来抽象问题。面向对象编程三要素:封装、继承、多态。其中安全而简便的使用多态是最大的优势。
面向对象设计的目的是通过强内聚、低耦合使系统易扩展、更强壮、可移植、更简单。
框架是用来实现某一类应用的结构性的程序, 是对某一类架构方案可复用的设计与实现,如同框架结构的大厦的框架,简化应用开发者的工作,实现了多种设计模式,使应用开发者不需要花太大的力气,就能设计出结构良好的程序来
2.2 设计臭味:僵硬、脆弱、不可移植
2.3 开闭原则:对扩展开放、对修改封闭。重点是抽象
2.4 依赖倒置原则:高层模块不能依赖低层模块,而是大家都依赖于抽象
2.5 李氏替换原则:是否符合该原则,只有通过它的客户程序才能体现出来。大多数这样的假设都很难预测。为了避免“过于复杂”或“过度设计”,只预测明显的违反 LSP 的情况。比如:1. 派生类中的退化函数,2. 派生类中抛出基类不会产生的异常
2.6 单一职责接口隔离原则:一个类只应该有一个使其变化的原因。违反该原则将来带脆弱性和不可移植性。不应该强迫客户程序依赖它们不需要的方法
2.7 Flower 是一个构建在 Akka 上的反应式微服务框架,开发者只需要针对每一个细粒度的业务功能开发一个 Service 服务,并将这些 Service 按照业务流程进行可视化编排,即可得到一个反应式系统。通过学习 Flower 框架,对使用依赖倒置原则开发框架性代码有了直观的认识
版权声明: 本文为 InfoQ 作者【华美而火锅】的原创文章。
原文链接:【http://xie.infoq.cn/article/1675c9ca28f4687df8663adde】。未经作者许可,禁止转载。
评论