摘要:
总结 里氏替换原则的场景和作用? what 是实现抽象化的一种规范 . when 在为已存在的class进行扩展, 来创建一个新的子类时. . how 里氏替换原则, 对子类进行了约束. . why 符合里氏替换原则的扩展, 不会给已有的系统引入新的错误. 约束一 子类可以扩展父类的功能, 但不能改 阅读全文
posted @ 2023-10-22 03:31
qwertzxc
阅读(20)
评论(0)
推荐(0)
摘要:
总结 什么是聚合 / 组合 / 继承? 比较一下耦合程度? 继承的耦合度, 高于聚合/组合 父类的任何变化,都会导致子类的实现发生变化. . 继承(白箱复用), 把所有的实现细节暴露给子类. . 组合/聚合(黑箱复用), 无法获取到class以外的对象的实现细节. 优先用聚合组合, 还是优先用继承? 阅读全文
posted @ 2023-10-22 03:30
qwertzxc
阅读(8)
评论(0)
推荐(0)
摘要:
总结 具体类不要发生直接的依赖关系, 应该通过接口层进行联系. 抽象层不要依赖低层, 要反过来, 低层依赖抽象层 高层模块不要直接依赖低层, 而要依赖中间的抽象层. 抽象层的稳定性, 要高于具体模块的稳定性 JAVA例子 参考 https://youtu.be/3uA1TvGRRi8?si=ycOt 阅读全文
posted @ 2023-10-22 03:30
qwertzxc
阅读(13)
评论(0)
推荐(0)
摘要:
总结 出现新需求时, 在不修改源代码的基础上, 扩展我们的组件. 当出现新的需求, 不得不对工程进行改动, 此时我们尽量用"扩展"的方式来满足需求(可以理解为添加新模块), 而不是通过改动程序实现. (修改旧的模块, 侵入式的) 用抽象构建框架,用实现扩展细节. 参数和对象尽量使用接口或抽象类. 遵 阅读全文
posted @ 2023-10-22 03:30
qwertzxc
阅读(6)
评论(0)
推荐(0)
摘要:
总结 任何一个软件模块, 都应该只对某一类行为者负责. ( 一个接口/抽象类 < > 一个职责 ) 一个接口只承担一个职能. . 换个说法: 一个class应该仅有一个引起它变化的原因. (变化的方向隐含着类的责任) . 负责前台收银的服务员, 就不要去餐厅收盘子。 负责餐厅收盘子的就不要去做汉堡。 阅读全文
posted @ 2023-10-22 03:30
qwertzxc
阅读(6)
评论(0)
推荐(0)
摘要:
总结 迪米特原则的目的? 降低class之间的耦合性, 提高模块的独立性, 减少A类对B类的依赖. 要点1 只和直接朋友通信, 不要和陌生人讲话. 要点2 减少对朋友的了解 (减少暴露的方法) 典型的反面例子 objectA.getObjB().doSomething(); objectA.getO 阅读全文
posted @ 2023-10-22 03:30
qwertzxc
阅读(39)
评论(0)
推荐(0)
浙公网安备 33010602011771号