Day 21: SOLID 设计原则 — DIP (待改进中... )

「依赖反向原则 (Dependency Inversion Principle, DIP) 告诉我们,最灵活的系统是**『原始码的依赖关系只涉及抽象不涉及具体』**的那些系统」

「我们想要避免依赖的是系统中容易变化的具体元素」

取自: Clean Architecture (p.75 & p.76)

CH11: 依赖反向原则 (Dependency Inversion Principle, DIP)

  • 特例说明 (例子)
    • Java 中的 String 类别
      • ...
      • 非常稳定
    • 在应用 DIP 时,我们倾向忽略作业系统和平台机制的稳定背景,我们容忍那些具体的依赖关系

稳定的抽象

  • 努力减少介面的变动性...
  • 规则
    1. 不要参考易变的具体类别
    2. 不要从易变的具体类别衍生
    3. 不要改写具体函式

工厂

  • Design Pattern 说明... (补充)
  • 制图

补充: 例子

寻找中... 也许 DI 跟 IOC 可以考虑

小结

  • 依赖性 & 控制流相反
  • 违反 DIP 的行为无法完全消除
  • 架构层级
    • 依赖规则

<<:  [Day 21] 实作-活动清单 子组件 Cards

>>:  听故事,了解问题解决、 lock 、 tranaction - 小白成长篇

Day 27 : 案例分享(8.1) 讯息、邮件与线上会议 - 单据通知及公司内部讨论

功能说明 本来没有预期说明这段,但odoo15的线上会议太香了,让整体实用性大增 属於odoo的底层...

calc()

calc() 是一个 CSS 的函数,功能如 function 字面上的意思,在设定属性的时候可以进...

Day 24:如何还原备份到 Github 另外一个分支的 Hexo 资料?

昨天我们尝试将 Hexo 备份到储存库另外一个分支,但如果哪一天真正需要使用这个备份还原本机环境怎麽...

Day17-Vue Router与前端路由管理

什麽是路由? 浏览器透过不同的网址,向後端的网页服务器发送请求 (Request),而服务器接收到浏...

Day13 流程控制之条件判断

了解流程控制 PHP程序设计中,很重要的环节就是条件判断! 条件判断能根据不同的情况执行不同的程序码...