GO語言初級學(xué)習(xí)之代碼案例06 (面向?qū)ο螅?/h2>

@(go語言 黑馬)[GO語言]

實現(xiàn)計算器

  • 題目:面向?qū)ο笏枷雽崿F(xiàn)計算器

  • 邏輯:1、 定義好加減乘除的結(jié)構(gòu)體;
    2、綁定好各自的方法,方法名都和接口名相同;
    3、定義接口,把結(jié)構(gòu)體們的方法融合在一起;
    4、定義工廠結(jié)構(gòu)體;
    5、編寫工廠結(jié)構(gòu)體的方法,這是整個代碼的核心;
    6、主函數(shù)通過工廠變量把所要的值返回出來,賦給一個變量,再打印輸出;

  • 代碼如下

package main

import "fmt"

type Opt struct { //父類結(jié)構(gòu)體,為了方便接口的調(diào)用,把加法減法放在不同的子類中;
    num1 int
    num2 int
}
type Addopt struct { //加法結(jié)構(gòu)體
    Opt
}
type Subopt struct { //減法結(jié)構(gòu)體
    Opt
}

//定義接口
type Jiekou interface {
    Calculate() int
}

//給加減法結(jié)構(gòu)體綁定方法
func (a *Addopt) Calculate() int {
    return a.num1 + a.num2
}
func (b *Subopt) Calculate() int {
    return b.num1 - b.num2
}

//定義多態(tài)
func poly(jie Jiekou) (value int) {
    value = jie.Calculate()
    return
}

type factory struct { //工廠的作用就是整合所有的方法,判斷輸入的命令,并根據(jù)判斷結(jié)果分配不同的方法
}

func (fac *factory) Result(num1 int, num2 int, synbol string) (value int) {
    var jie Jiekou //最終還是要通過接口實現(xiàn)方法
    //通過接口實現(xiàn),必須定義接口變量,不同的接口變量對應(yīng)不同的方法
    //接口變量被賦值為能夠?qū)崿F(xiàn)該接口的結(jié)構(gòu)體變量,調(diào)用綁定該結(jié)構(gòu)體的方法
    switch synbol { //通過switch給接口變量賦不同的值
    case "+":
        jie = &Addopt{Opt{num1, num2}}
    case "-":
        jie = &Subopt{Opt{num1, num2}}
    }
    value = poly(jie) //利用多態(tài)調(diào)用接口,并輸出返回值
    return
} //這是綁定在factory的方法

func main() {
    var fac factory
    value := fac.Result(12, 23, "+")
    fmt.Println(value)
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,734評論 18 399
  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,260評論 8 265
  • 單例設(shè)計模式是指:保證整個程序中只有一個實例。 確保某個類有且只要一個對象的場景,避免產(chǎn)生過多對象消耗過多資源,或...
    Ayres閱讀 186評論 0 1
  • 2017.4.1 今天是愚人節(jié),我回家了,家里又多了一位,小狗子。之前讓媽媽去買一條小狗養(yǎng)著,媽媽就是不愿意,現(xiàn)在...
    超潮先生閱讀 285評論 0 0
  • 他們的愛與風(fēng)華,只問自由,只問盛放,只問深情,只問初心,只問勇敢,無問西東?!稛o問西東》 1 1962年,...
    等一個盛夏閱讀 824評論 0 1

友情鏈接更多精彩內(nèi)容