开闭原则
软件工件的行为应该是不必修改工件而可扩展的
想法实验
有个财务汇总的web页面的系统,假设利益相关者想把这些同样的信息在黑白打印机打印成报告。一个好的软件架构将会把改变得代码总量尽可能降到最低,理论上,一行不变。通过把会由于不同原因变化得事情分割开来(单一职责原则SRP),恰当地组织这些事情得依赖(依赖倒置原则DIP)。
1.信息隐藏
确保类A用到B的名字,但类B没有用到类A的名字。这样A知道B的存在,但是B就不知道A的存在。
2.方向控制
所有的函数和类的关系都是单向的。
Interactor是最高层的概念,他们是最能避免影响的,Views是最底层的概念,所以他们呢是最容易被影响的,Presenters比Views层次要高,但低于Controller和Interactor。