iT邦幫忙

2021 iThome 鐵人賽

DAY 30
0
Software Development

也該是時候學學 Design Pattern 了系列 第 30

Day 30: 關於 Design Pattern,來點心理測驗吧

緣由

現在對模式有個初步的了解,想試著寫出「設計模式」的心理測驗。

測驗開始

問題區

問題 1

你這陣子開發遇到問題了嗎?

  • YES -> 問題 2
  • NO -> 你需要的是 A

問題 2

感到卡卡是因為對於管理物件的製作、生成感到頭疼嗎?

  • YES -> 問題 5
  • NO -> 問題 3

問題 3

感到卡卡是因為對於物件的結構,以及如何組合大型物件感到頭疼嗎?

  • YES -> 問題 11
  • NO -> 問題 4

問題 4

感到卡卡是因為對於物件的演算法、權責分配以及溝通方式感到頭疼嗎?

  • YES -> 問題 18
  • NO -> 你需要的是 B

問題 5

想要體驗看看設計模式如何運用嗎?

  • YES -> 你需要的是 C
  • NO -> 問題 6

問題 6

希望直觀、不拖泥帶水地建立物件?

  • YES -> 你需要的是 D
  • NO -> 問題 7

問題 7

物件的種類繁多,希望能找出規律來建立物件?

  • YES -> 你需要的是 E
  • NO -> 問題 8

問題 8

物件的製作過程很複雜?擔心在過程中會忘記一兩個步驟?

  • YES -> 你需要的是 F
  • NO -> 問題 9

問題 9

跟物件的建立沒關係,而是煩惱如何實作物件的 Deep Copy?

  • YES -> 你需要的是 G
  • NO -> 問題 10

問題 10

煩惱要如何跟特定時間內只允許單一物件進行操作的物件進行溝通?

  • YES -> 你需要的是 H
  • NO -> 問題 11

問題 11

多個物件之間的介面不相容,無法輕易溝通?

  • YES -> 你需要的是 I
  • NO -> 問題 12

問題 12

還沒動手開發,而是煩惱往後開發出多個商業邏輯層後,要如何使用?

  • YES -> 你需要的是 J
  • NO -> 問題 13

問題 13

要求多個物件,彼此結構、方法相同,還可以組合成一個大物件,其結構、方法也雷同?

  • YES -> 你需要的是 K
  • NO -> 問題 14

問題 14

不打算使用繼承就能幫物件新增功能?

  • YES -> 你需要的是 L
  • NO -> 問題 15

問題 15

希望幫系統建立一個單一對外窗口?

  • YES -> 你需要的是 M
  • NO -> 問題 16

問題 16

使用大量擁有類似結構的物件,導致記憶體使用量增加,想找出降低記憶體使用量的可能?

  • YES -> 你需要的是 N
  • NO -> 問題 17

問題 17

不想要修改物件,卻需要增加、限制、改變物件對外的功能?

  • YES -> 你需要的是 O
  • NO -> 問題 18

問題 18

物件的行為需要通過一連串的檢查點?或是通過幾個就算通過??

  • YES -> 你需要的是 P
  • NO -> 問題 19

問題 19

需要將物件的執行命令加以儲存、待命、剔除的功能?

  • YES -> 你需要的是 Q
  • NO -> 問題 20

問題 20

單純想了解簡單版的字串轉譯機制?

  • YES -> 你需要的是 R
  • NO -> 問題 21

問題 21

面對非陣列的資料結構,需要實作 forEach()

  • YES -> 你需要的是 S
  • NO -> 問題 22

問題 22

系統內物件的溝通關係複雜,想要建立一個中介者輔助物件的溝通?

  • YES -> 你需要的是 T
  • NO -> 問題 23

問題 23

物件的內部狀態需要在執行時暫時儲存在記憶體內?

  • YES -> 你需要的是 U
  • NO -> 問題 24

問題 24

如果單一物件的狀態改變,多個物件需要立即變動、執行相對應的行為?

  • YES -> 你需要的是 V
  • NO -> 問題 25

問題 25

物件的方法深受自身的狀態影響?

  • YES -> 你需要的是 W
  • NO -> 問題 26

問題 26

傳入的參數會影響物件方法的計算過程?

  • YES -> 你需要的是 W
  • NO -> 問題 27

問題 27

物件大致上完成,剩下幾個方法的細部執行內容有差異,需要成立獨立的物件?

  • YES -> 你需要的是 Y
  • NO -> 問題 28

問題 28

特定資料結構的物件,往後可能會新增多個方法,根據物件的資料結構而有不同的產出?

  • YES -> 你需要的是 Z
  • NO -> 你需要的是 B

你需要的結果區

需要的是 A

你現在開發沒遇到大問題,新增、擴充功能都順順利利,那很好,不用特地花時間閱讀了,做點享受的事吧!

如果看完上面那段沒有被勸退,那就任意在下方挑個模式閱讀吧!

需要的是 B

你可能不是遇到物件的問題,而是:

  • 更基礎,偏向程式語言的語法使用、相關框架的運用?基礎電腦科學知識?
  • 更高層的,偏向系統、架構的問題。

不論是哪一種,Google 相關主題,或是去書店翻翻書吧!

需要的是 C

沒錯,你可能在找尋「Simple Factory Method」。

可以參考:

需要的是 D

沒錯,你可能在找尋「Factory Method」。

可以參考:

需要的是 E

沒錯,你可能在找尋「Abstract Factory」。

可以參考:

需要的是 F

沒錯,你可能在找尋「Builder」。

可以參考:

需要的是 G

沒錯,你可能在找尋「Prototype」。

可以參考:

需要的是 H

沒錯,你可能在找尋「Singleton」。

可以參考:

需要的是 I

沒錯,你可能在找尋「Adapter」。

可以參考:

需要的是 J

沒錯,你可能在找尋「Bridge」。

可以參考:

需要的是 K

沒錯,你可能在找尋「Composite」。

可以參考:

需要的是 L

沒錯,你可能在找尋「Decorator」。

可以參考:

需要的是 M

沒錯,你可能在找尋「Facade」。

可以參考:

需要的是 N

沒錯,你可能在找尋「Flyweight」。

可以參考:

需要的是 O

沒錯,你可能在找尋「Proxy」。

可以參考:

需要的是 P

沒錯,你可能在找尋「Chain of Responsibility」。

可以參考:

需要的是 Q

沒錯,你可能在找尋「Command」。

可以參考:

需要的是 R

沒錯,你可能在找尋「Interpreter」。

可以參考:

需要的是 S

沒錯,你可能在找尋「Iterator」。

可以參考:

需要的是 T

沒錯,你可能在找尋「Mediator」。

可以參考:

需要的是 U

沒錯,你可能在找尋「Memento」。

可以參考:

需要的是 V

沒錯,你可能在找尋「Observer」。

可以參考:

需要的是 W

沒錯,你可能在找尋「State」。

可以參考:

需要的是 X

沒錯,你可能在找尋「Strategy」。

可以參考:

需要的是 Y

沒錯,你可能在找尋「Template Method」。

可以參考:

需要的是 Z

沒錯,你可能在找尋「Visitor」。

可以參考:

寫在最後

滿意!完成一篇自娛娛人的測驗!!同時加深我對各種模式的既有印象!!!


上一篇
Day 29: 23 + 1 個模式的總結
下一篇
完結心得
系列文
也該是時候學學 Design Pattern 了31

1 則留言

0
TD
iT邦新手 4 級 ‧ 2021-10-31 17:49:00

哇賽這個測驗是你想出來的嗎?太厲害了!

我要留言

立即登入留言