デザインパターンに関するkobee99のブックマーク (10)

  • State パターン - デザインパターン入門 - IT専科

    State パターン 「State」という英単語は、「状態」を意味します。 このパターンでは、ある物についての各状態をそれに対応した各クラスで表現します。(つまり、状態1つにつき、クラス1つで表現します。) 通常、条件(状態)に一致するか否かの処理は、if文を使用し、コーディングしますが、その条件分岐数が多い場合、1つの条件で処理するコード量が多い場合、また同じ条件分岐が複数の箇所に点在する場合等、メンテナンスし辛いものとなってしまいます。しかし、このパターンを適用すると、その状態状態を個々のクラスで表現するため、単純明快となります。 役割り 1. State(状態) 状態を表すクラスです。 状態毎に振舞いが異なるメソッドのインタフェースを定義します。 2. ConcreteStateA・B(具体的な状態) 「State」のインタフェースを実装し、具体的な状態を、「1クラス」 = 「1状態

    kobee99
    kobee99 2017/09/18
    stateとcontext。シングルトン。この構成を探してた。
  • Factory Method と Abstract Factory の違いを順に理解する

    はじめに# デザインパターンにでてくる Factory Method と Abstract Factory. なんだか, いつになっても違いが分からない… というわけで一旦整理してみることにした. 能書き# まずは, 一般的な説明をネットからひろう. Factory の原則# 生成と実装を分離することで, プログラムはシンプルになる. 生成パラメータの指定方法をシンプルに 生成後の管理をシンプルに 生成するオブジェクトの指定方法をシンプルに 特定のケースで特定のオブジェクトを生成するのは手続き思考的. 2 つをわけて考えることで設計に集中. 動作方法 生成,管理方法 Factory Method# オブジェクトの生成を行う時のインタフェースを規定して, インスタンス化するクラスを決定するのはサブクラスに任せる. factoryMethod の中でオブジェクトの生成をすることで, 生成を生成

    Factory Method と Abstract Factory の違いを順に理解する
  • C# Tips: interface を 抽象クラス (abstract class) とどう使い分けるか (プログラミング C# - 翔ソフトウェア (Sho's))

    # 久々に技術ネタを書いてみる。 # と言っても、某掲示板で使ったネタの使い回し。 C++ にはなかった新しいキーワードとして、C# では interface というものが出てくる。 interface は、Java ではおなじみのキーワードだ。 例. interface ICloneable { object Clone(); } interface では公開されているメソッドとプロパティの外見 (名前、パラメータ、戻り値) だけが宣言されていて、実装部分が定義されていない。実装部分は、その interface を実装するクラスによって定義される。 例. class Employee : ICloneable { private string name; public string Name { get { return name; } set { name = value; } } p

  • サルでもわかる 逆引きデザインパターン 第2章 逆引きカタログ ロジック編 Factory/Factory Method(ファクトリ/ファクトリメソッド)

    イントロダクション オブジェクトを利用する側からすれば、使用する際にオブジェクトの詳細を意識したくはありませんよね。 たとえば、条件によってデータファイルの読み込みに使うオブジェクトが異なる場合、CSV形式であればCSVDataReaderオブジェクトを、XML形式であればXMLDataReaderオブジェクトを生成します。 通常はif、else、switchなどの条件分岐を使用して、条件ごとに生成するオブジェクトを変更します。 ここで新たなデータファイル形式への対応が必要になった場合は、新しいオブジェクト生成処理と、条件式を追加しなければいけません。 オブジェクトの使用者は、オブジェクトが使用できる状態で受け渡してもらい、オブジェクトは使うことだけに専念したいものです。 また、このようにオブジェクトの生成処理と使用処理が同じコードに書かれていた場合、オブジェクトの生成処理によってオブジェ

  • なんちゃってデザインパターンで条件分岐をなくす - give IT a try

    昨日会社のメンバーからコーディングについて相談を受けました。 話を聞いていると、オブジェクト指向設計を利用してコードをリファクタリングしたい様子でした。 彼は頑張ってインターフェースやクラスを自分で定義していたんですが、ちょっとぎこちない設計だったので、おいらはStateパターンとFactoryパターンらしきテクニックを使って、改善のお手伝いをしてみました。 そのときの事例をめちゃくちゃデフォルメして説明すると、こんな感じになります。 プログラムはStateに応じて文字や色を変更します。 初期状態です。 ボタンを押すとStateに応じて文字や色が変わります。 メンバーが最初に書いていたプログラムのイメージはこんな感じです。 using System; using System.Collections.Generic; using System.ComponentModel; using S

  • Stateパターンのどこがすごいのか、感心されたので、書いてみる - ウィリアムのいたずらの、まちあるき、たべあるき

    デザインパターンで状態を示すStateパターンっていうのがある。 これを説明して、「Stateパターン、すげー(@_@!)」 って感心されたんで、書いておいて見る。 ■そもそも、Stateパターンとは? 状態を示す(抽象的な)スーパークラスStateをつくり、 (具体的な)各状態は、それを継承した、各状態クラスを作ります。 例:Stateクラスには、executeがある

    Stateパターンのどこがすごいのか、感心されたので、書いてみる - ウィリアムのいたずらの、まちあるき、たべあるき
  • 状態遷移と状態の排除

    phi16です。traP Advent Calend a r 20日目です。技術系の話をします。 このへんにコードが諸々置いてあるので並行して読むとよいとおもいます。 完成品はこれです。 はじめに プログラムを書いてて起きるバグの多くは状態に起因するものである。勿論状態という概念を持たないチューリング完全なモデルは存在するが、現実として、特にゲームを作る上で状態を持たないことは不可能と言える。そこで、素直に書いた手続き型のコードから「如何に状態を削減するか」、「状態というものを隠蔽するか」、ということを考えたい。 今回はJavaScriptHTML5 Canvasを使ってアクションゲームのモデルを作る。内容としては"キャラが動くだけ"、である。しかしその中にも多くの状態が隠れているのである。 手続き型のコード 状況設定[c152383] 画面はある範囲の矩形、そのなかでキャラクタ(青色の

    状態遷移と状態の排除
  • マリオでStateパターン! 〜Java編〜 - 脱エンタープライズ志向

    元ネタ - iマリオでデザインパターン その1 【Strategyパターン】 - hidecheckの日記 そのエントリーのコメントにも書いたとおり、StateパターンとStrategyって混同しやすいと思う。(もしかしたら今もそうかも。ツッコミください。) そこで僕もStateパターンで何かマリオ的なモノを作ってみようということで、やってみた。とりあえず今回の仕様はこちら。(実際のマリオの挙動と違うかもですが、そこはご了承を!) 今、デフォマリオの状態 スーパーきのこをべた⇒デカマリオになる ファイアフラワーをべた⇒デカマリオになる ノコノコに当たった⇒ゲームーオーバー 今、デカマリオの状態 スーパーきのこをべた⇒デカマリオになる(というか変化無し) ファイアフラワーをべた⇒ファイヤーマリオになる ノコノコに当たった⇒デフォマリオになる 今、ファイヤーマリオの状態 スーパーきのこ

  • Factory (ファクトリ) パターン

    Factory パターンって、Abstract Factory パターンのことを言ってるの?それとも Factory Method パターンのこと? と疑問に思う方もいらっしゃると思いますが、ここでは両者をまとめて解説します。 誤解をおそれずに言うなら、両者にはたいした違いはありません。 この「たいした」の部分のについては、説明を読んでいただければわかるかと思います。 コンテンツ Factory ってなに? それをやるとなにが嬉しいのか? インタフェースで依存度を下げてみる 問題はコンストラクタ ファクトリを使って依存をなくす ファクトリの可能性 Abstract Factory と Factory Method の違い Abstract Factory パターンとは Factory Method パターンとは Factory パターンの応用 Factory ってなに? 直訳すれば工場です

    kobee99
    kobee99 2015/03/19
    説明が抽象的かつシンプルで理解しやすかった。
  • fladdict.net blog: あなたのよく使うデザインパターンはなんですか?

    貴方がもっともよく使うデザインパターンのベスト10を教えてください Naoya氏のJavaScript OOPとかを見ていたら、ふと疑問に思いました。 みんなデザパタってどういうの使ってんだろう? 自分のOOPは完全にのみの自己流、先輩も師匠もなにも存在しません。しかも言語がflashでプロトタイプベースときています。んなわけで、スッゲェ偏ってると思うので、他のみなさんがどんなの使ってるのか気になる今日この頃デス。 1位: Template とりあえずこれがないと、サブクラス真面目に作る気になれません。 2位: Observer イベントリスナーモデルの便利さでOOPに目覚めました。 2位: Singleton 1作に1個はつかいます、大好き。 3位: Mediator 要所要所でメディエイターを作るのが好きです。時間たってからコード読んでも思い出しやすくなるので。 4位: Comman

  • 1