
SRP(单一原则)
一个对象(方法)只做一件事,例如:代理模式、迭代器模式、单列模式、装饰者模式, 何时应该分离职责, 也是最难正确应用的地方!
SRP优点
- 降低了单个类或者对象的复杂度, 按照职责吧对象分解成更小的粒度
利于代码复用和进行单元测试
缺点
增加编写代码的复杂度
LKP (最少知识原则)
最少知识原则也叫迪米特法则、最少知识原则说的是: 一个软件实体尽可能少的与其他实体发生相互作用! 对象之间互相依赖可能会产生错综复杂的联系、如果修改了其中一个对象、很有可能影响到他互相引用的对象, 对象与对象耦合在一起、有可能降低他们的复用性, 软件实体是一个广义的概念、不仅包含对象、还包括系统、类、模块、函数、变量等! 最少知识原则体现最多的地方是: 中介者模式、外观模式