iT邦幫忙

2023 iThome 鐵人賽

DAY 13
0
自我挑戰組

初階面試常見題目彙整系列 第 13

初階面試常見題目回答-簡單介紹模式-鐵人賽第十三日

  • 分享至 

  • xImage
  •  

介紹完SOLID可以明顯地察覺,
設計原則的目的,就是大家遵循著一個共通的原則。

就以譬喻來說就像是流水線一般,
想讓大家遵循著一個特點磨去菱角,
以利各種作業。

有沒有很耳熟能詳,
我們有一個稱呼是專門稱呼這個的。
就是學校~~~!!

阿不對,說錯,是工廠
這就是未來幾天的題目。

不過在此之前要先簡單的帶大家認識模式是什麼
說到這個要稍微提到GoF(Gang of Four)
《設計模式:可復用物件導向軟體的基礎》(Design Patterns: Elements of Reusable Object-Oriented Software)

可能很多人看過忘了、沒看過或是只看過衍生出來的書籍。

創建型模式(Creational Patterns)又稱建立型模式(建造型)
結構型模式(Structural Patterns)
行為型模式(Behavioral Patterns)

這邊主要會說到創建型模式與行為型模式,
不過在此會先簡單介紹一番。

創建型模式(Creational Patterns)
就是不被new的。
如果只看這一句話,會很容易跟之前的某個概念搞混。

對我說的就是你!!!抽象

但這裡就要說到我常提的一點,定義!
抽象與Creational Patterns可不同。

抽象是一種程式設計原則,可以認為是一種廣泛的定義,主要是為了實現可擴展跟多型;
而Creational Patterns是一種設計模式,主要是為了某些特定情境而去解決創建物件的問題

結構型模式(Structural Patterns)
其實很多能從名稱上大略猜到各個模式所定義的,
例如Creational Patterns,
而Structural Patterns也同理,
他的主要目的是為了如何構建複雜的object結構。
白話點的話就是為了把複雜的弄成簡單的,
而把複雜的用成簡單的這個概念,
有沒有發現於一個概念有點像,
封裝的定義為把複雜的內部隱藏起來,提供一個簡單的對外接口。
那麼Structural Patterns就是為了把複雜的內部細節簡化的設計模式。

而關於Structural Patterns,目前在未來的預期規劃解說內,
是沒有相關的模式要解說的。

行為型模式(Behavioral Patterns)
那麼說到這裡,所以大家都很清楚一件事情
前面提到的都與前面有所關聯,
不論是多型中的抽象、封裝。
那麼剩下的Behavioral Patterns就是跟剩下的那個概念相關,

https://ithelp.ithome.com.tw/upload/images/20230926/2016203919xgxfVTuA.png

沒錯!!!就是interface(介面)
不過與interface不同的點在於
interface主要是只要有一個外部接口就能叫做interface,就更偏向於名詞上的定義,就是這個動作行為的名稱我們稱之interface
而Behavioral Patterns主要是在不同的object之間的協作,更偏向各個角色之間的相互作用,
那麼Behavioral Patterns主要是在不同的object之間的協作,那麼是不是代表著一定要一個object以上才能進行呢?
關於這個筆者要說,各位可得好好思考,如果程式只有一個object,那麼就一定沒有其他東西跟他互動了嗎?

當然所有的東西都會跟基礎有所相關,
而或多或少都會看到從SOLID所衍伸出的狀況。
這各個模式如果細說的話絕對可以到三十天,
詳情請看這位前輩所寫的
初探設計模式
https://ithelp.ithome.com.tw/users/20112528/ironman/2113

----梗圖出處
兩人對話《星際大戰二部曲:複製人全面進攻》(Star Wars Episode II:Attack of the Clones)。


上一篇
初階面試常見題目回答-過度設計-鐵人賽第十二日
下一篇
初階面試常見題目回答-簡單工廠模式-鐵人賽第十四日
系列文
初階面試常見題目彙整30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言