看板 heart 關於我們 聯絡資訊
當然可以!以下是兩個例子來說明接口和實現的概念。 ### 範例一:咖哩塊 我們可以將咖哩塊視為一個接口,不同的品牌和種類的咖哩塊則是這個接口的具體實現。 #### 接口 假設我們有一個 `CurryBlock` 接口,定義了製作咖哩塊所需的基本行為: ```go package main import "fmt" // 定義 CurryBlock 接口 type CurryBlock interface { AddIngredients() Stir() Serve() } ``` #### 實現 不同的咖哩塊品牌和種類,如日式咖哩塊、印度咖哩塊,實現了 `CurryBlock` 接口,提供 了具體的製作過程。 ```go // 實現 JapaneseCurryBlock 結構 type JapaneseCurryBlock struct { Brand string } func (jc JapaneseCurryBlock) AddIngredients() { fmt.Println("Adding ingredients for Japanese Curry.") } func (jc JapaneseCurryBlock) Stir() { fmt.Println("Stirring Japanese Curry.") } func (jc JapaneseCurryBlock) Serve() { fmt.Println("Serving Japanese Curry.") } // 實現 IndianCurryBlock 結構 type IndianCurryBlock struct { Brand string } func (ic IndianCurryBlock) AddIngredients() { fmt.Println("Adding ingredients for Indian Curry.") } func (ic IndianCurryBlock) Stir() { fmt.Println("Stirring Indian Curry.") } func (ic IndianCurryBlock) Serve() { fmt.Println("Serving Indian Curry.") } ``` #### 結果 通過這樣的接口設計,無論是日式咖哩塊還是印度咖哩塊,只要它們實現了 `CurryBlock` 接口,我們就可以使用相同的方式來製作和享用不同風味的咖哩。 ### 範例二:遊戲類型 我們可以將遊戲類型視為一個接口,不同的遊戲則是這個接口的具體實現。 #### 接口 假設我們有一個 `Game` 接口,定義了遊戲的基本行為: ```go package main import "fmt" // 定義 Game 接口 type Game interface { Start() Play() End() } ``` #### 實現 不同的遊戲類型,如射擊遊戲、益智遊戲,實現了 `Game` 接口,提供了具體的遊戲過程。 ```go // 實現 ShooterGame 結構 type ShooterGame struct { Title string } func (sg ShooterGame) Start() { fmt.Println("Starting Shooter Game.") } func (sg ShooterGame) Play() { fmt.Println("Playing Shooter Game.") } func (sg ShooterGame) End() { fmt.Println("Ending Shooter Game.") } // 實現 PuzzleGame 結構 type PuzzleGame struct { Title string } func (pg PuzzleGame) Start() { fmt.Println("Starting Puzzle Game.") } func (pg PuzzleGame) Play() { fmt.Println("Playing Puzzle Game.") } func (pg PuzzleGame) End() { fmt.Println("Ending Puzzle Game.") } ``` #### 結果 通過這樣的接口設計,無論是射擊遊戲還是益智遊戲,只要它們實現了 `Game` 接口,我們 就可以使用相同的方式來操作和享受不同類型的遊戲。 這兩個例子都展示了接口如何定義共用行為,使得不同的具體實現能夠被統一操作和管理, 從而提高系統的靈活性和擴展性。如果有任何其他問題或需要更多例子,隨時告訴我! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.83.53.233 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/heart/M.1739637169.A.804.html