読者です 読者をやめる 読者になる 読者になる

Go言語入門 / golang入門 デザインパターン Adapter

f:id:nasust:20161122141513p:plain The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) CC3.0

こんにちはnasustです。WikipediaAdapter パターン - Wikipediaを参考にGo言語 / golangで実装してみました。

埋め込みのパターン(wikipediaでは継承のパターンとして紹介)

type ProductPrice interface {
    getPrice() int
}

type Product struct {
    cost int
}

func (product *Product) getCost() int {
    return product.cost
}

type ProductAdapter struct {
    Product
}

func (adapter *ProductAdapter) GetPrice() int {
    return adapter.getCost()
}

フィールドを利用したパターン

type ProductPrice interface {
    getPrice() int
}

type Product struct {
    cost int
}

func (product *Product) getCost() int {
    return product.cost
}

type ProductAdapter struct {
    product *Product
}

func (adapter *ProductAdapter) GetPrice() int {
    return adapter.product.getCost()
}

func NewProductAdapter() *ProductAdapter {
    return &ProductAdapter{&Product{}}
}

Go言語 / golangでも簡単に出来ました。このパターンはオブジェクトパターンを意識しないでも、良く使用していると思います。


Go言語 / golang 入門 目次に戻る

広告を非表示にする