anomalocaristan’s blog

JSやGo、設計などについて学んだことをメモしておくサイトです

【デザインパターンノック】1本目 Abstract Factory <<WIP>>

概要

  • インスタンスを生成する為だけのクラス。このクラスが持つ責務は インスタンスを生成する ということだけ
  • オブジェクトグループを間違いなく生成する

もっとわかりやすく

例えば、下記のように3つのオブジェクトがあるとする。

f:id:anomalocaristan:20200826013043p:plain
オブジェクト一覧

Goで書くとこんな感じ

type dog struct {
    favoriteFood string
}

type cat struct {
    favoriteFood string
}

type man struct {
    favoriteFood string
}

さらに、 好物のオブジェクト を作るための構造体と関数も用意する。

type food struct {
    ingredients string
}

func NewTakoyaki(ingredients string) food {
    return food{ingredients: ingredients}
}

本来期待する動作は、 キャラクターに対して適切な好物を設定する ということ。 ↓ なら特に問題ないけど(たこ焼き食べたい)

func main() {
    man := NewMan(NewTakoyaki("octopus"))
}

↓の場合は犬の健康に悪影響が出てしまう。

func NewCat(favoriteFood food) food {
    return food{ingredients: favoriteFood.ingredients}
}

それで結局何なのか

キャラクター・フードのインスタンス作成を

参考

Abstract Factory パターン - Wikipedia

8. AbstractFactory パターン | TECHSCORE(テックスコア)

デザインパターン20本(くらい)ノック

モチベーション

デザインパターンがわからなさすぎてアーキテクチャの勉強に影響を及ぼしてきたのでそろそろ学ぼうと思いました。でも、生成パターンとか構造パターンとかそもそもそのサブタイが理解できないので不安でしかない。

学習予定一覧

〜生成パターン(?)〜

  • Abstract Factory
  • Builder
  • Factory Method
  • Prototype
  • Singleton

〜構造パターン(?)〜

  • Adapter
  • Bridge
  • Composite
  • Decorator
  • Facade
  • Flyweight
  • Proxy

〜振る舞いパターン(?)〜

  • Chain of Responsibility
  • Command
  • Interpreter
  • Iterator
  • Mediator
  • Memento
  • Observer
  • State
  • Strategy
  • Template Method
  • Visitor

今回は着手しないもの

  • マルチスレッドプログラミングに関するパターン一覧 (そのうちやりたい)
  • アンチデザインパターン (そのうちやりたい)

参考

ja.wikipedia.org

リモートワークっていいよね

すごいどうでもいい話なんですけど、最近の社会的な動きとしてリモートワーク推奨になったじゃないですか。あれってすごく合理的でいいですよねっていう。
多分自分が新入社員だったら戸惑うだろうから、新人さんにとっては微妙なのかもしれないけど。

続きを読む

【Go】クエリストリングを複数投げたのに取得できない時

経緯

GoでAPI書いていて http://localhost:2000/hogehoge?name=yeee&age=fugaa みたいなリクエスト投げたのにちゃんと取得出来なくて3日くらい悩んだのに、すごい初歩的な事が原因だった。

原因

そもそもGo側の問題じゃなかった。 ターミナルからcURL叩いてたのが原因・・・というか、エスケープをちゃんとしてなかったのが原因だった。

# ダメな例
$ curl http://localhost:2000/hogehoge?name=yeee&age=fugaaa

# ちゃんと通る例(&をエスケープしてる)
$ curl http://localhost:2000/hogehoge?name=yeee\&age=fugaaa
続きを読む

生きてます

最近まったくブログ書いてませんが生きてます。 特につつがなく生きてますが園児ニアのまま成長してません。

まじで近日中に頑張って記事あげます。以上
まじ って死語になりかけているんだろうか)



追伸
広告が入って見づらいことこの上ないので他のブログに引っ越すか、有料版に切り替えるかで悩み中です