<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      關于Golang中的依賴注入實現

      先定義一個內部調用接口 用于后面的注入

      // 被 注入的接口
      type UserFace interface {
          Get() string
          Set() string
      }

      然后定義一個 Struct ,開啟構造函數,并實現 上面的 接口 

      type SysUser struct {
          Name string
      }
      
      // User的構造函數
      func NewSysUser(Name string) *SysUser {
          return &SysUser{Name: Name}
      }
      
      // 實現接口 UserFace
      func (u *SysUser) Get() string {
          return "SysUser.Get"
      }
      
      // 實現接口 UserFace
      func (u *SysUser) Set() string {
          return "SysUser.Set"
      }

      定義一個對 外部 (main 或者是 gin可以直接 調用的)調用接口

      type MyFace interface {
          Sum(a int, b int) int
      }

      然后 定義外部Struct  用于實現上面的  外部 調用接口,并且 注入內部調用接口UserFace 

       

      // 定義結構體  并注入 UserFace
      type MyStruct struct {
          UserFace UserFace // 注入 UserFace
      }
      
      // MyStruct構造函數
      func NewMyStruct(face UserFace) *MyStruct {
          return &MyStruct{
              UserFace: face, // 注入 SysUser 系統用戶
          }
      }
      
      // 實現接口 MyFace
      func (ms *MyStruct) Sum(a int, b int) int {
          getval := ms.UserFace.Get() // 調用 注入的 UserFace 的Get方法
          setVal := ms.UserFace.Set() // 調用 注入的 UserFace 的Set方法
          fmt.Println("MyStuct調用了UserFace Get: ", getval)
          fmt.Println("MyStuct調用了UserFace Set: ", setVal)
          return a + b
      }

       

       

       

      Main 使用  (注意:不能face.UserFace.Get() 這么調,因為UserFace是接口類型,只能在實現 MyFace 接口并注入 UserFace的 MyStruct 里調用 )

      func main() {
          sysUser := NewSysUser("張三")            // 定義注入實體
          var face MyFace = NewMyStruct(sysUser) // 定義 外部 接口類型 并將實體注入
          result := MyFace.Sum(face, 1, 2)       // 調用外部接口方法
          fmt.Println(result)
          //face.UserFace.Get()   // 注意 不能這么調,因為UserFace是接口類型
      }

       

      posted @ 2024-06-13 23:37  酒沉吟  閱讀(44)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 精品人妻无码一区二区三区性| 精品国产免费一区二区三区香蕉| 免费国产又色又爽又黄的网站| 亚洲成亚洲成网| 91密桃精品国产91久久| 久久成人国产精品免费软件| 欧美成本人视频免费播放| 天堂在线最新版在线天堂| 国语精品一区二区三区| 久久月本道色综合久久| 色悠久久网国产精品99| 夜夜添无码一区二区三区| 国产激情无码一区二区三区| 人妻在线中文字幕| 最新国产精品好看的精品| 欧美无人区码suv| 国产精品一区二区三区性色| 久久人人爽人人爽人人av| 色噜噜亚洲精品中文字幕| 人妻av中文字幕无码专区 | 亚洲美女av一区二区| 广东少妇大战黑人34厘米视频| 真人性囗交视频| 91精品国产蜜臀在线观看| 真人性囗交视频| 亚洲人成电影网站色| 成人av久久一区二区三区| 九九热精品在线视频免费| 国产日产免费高清欧美一区| 国产不卡精品视频男人的天堂| 色综合久久中文字幕综合网| 亚洲精品中文字幕尤物综合| 中文日产幕无线码一区中文| 国产乱色熟女一二三四区| 久久精品国产亚洲av热一区| 人人澡人摸人人添| 中文字幕日韩区二区三区| 无码天堂亚洲国产AV| 国产福利深夜在线播放| 中文字幕av无码免费一区| 国产乱码字幕精品高清av|