Day05 間接層 (indirection)


  • 什麼是間接層 (indirection) ?
  • 間接層的實作

什麼是間接層?

間接層把「是什麼」與「如何實作」這兩件事分開來。當有人詢問『這個東西是怎麼運作的?』的時候,如果最好的答案是『視情況而定』,這就是間接層存在的最佳時機。當「實作」很複雜,或是很容易改變時,加入間接層就很有幫助。

indirections

間接層通常用兩種基本的方式來做:

  1. 參考 (references)
  2. 條件表達式 (conditionals)
參考 條件表達式 表格 (無序的條件)
功能 傳遞值 依照輸入值來做決定 依照輸入值來做決定
對於改變 開放 閉鎖 (除非改程式碼) 開放
範例 傳遞函數的參數 if/case/cond multimethod/protocol

條件表達式的本質是有序的條件 (order conditionals) ,所以它對於修改是閉鎖的,一定要改程式碼才有辦法改。如果想要做出容易修改的「條件」,就要把它改成無序的條件 (unorder conditionals) ,又可以稱之為表格

#indirection







你可能感興趣的文章

TypeScript 筆記:unknown 簡介

TypeScript 筆記:unknown 簡介

JS Advanced --pass by value && pass by reference && pass by sharing

JS Advanced --pass by value && pass by reference && pass by sharing

JetBrains WebStorm 開發 Angular 17

JetBrains WebStorm 開發 Angular 17






留言討論