kamyu_2010 さん プロフィール

  •  
kamyu_2010さん: JavaによるJava初心者向けデザパタのくどい詳細解説
ハンドル名kamyu_2010 さん
ブログタイトルJavaによるJava初心者向けデザパタのくどい詳細解説
ブログURLhttps://blogs.yahoo.co.jp/kamyu_2010
サイト紹介文Javaでデザインパターンを語って(解説して)みようと思います。
自由文Javaを使えるようになった時、デザインパターンを使おうと思いましたが、分かったような分からないパターンが多く、分かり易い使い方が簡単なものばかりしか使えませんでした。

つきましては、分かりにくかったものを一つ一つ解説してみたいと思います。
参加カテゴリー
更新頻度(1年)情報提供17回 / 45日(平均2.6回/週) - 参加 2017/10/30 15:46

kamyu_2010 さんのブログ記事

  • 過去の記事 …
  • 私なりの詳細な説明 (6)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]Ⅱ.前記で説明した 変更不要な共通部分と追加部分を持つクライアント クラス>> を使ってのY社 に納品する場合の全コードを記述します。 役割がAbstractionクラスのコード >>publicclass Abstraction{ private Implement [続きを読む]
  • 私なりの詳細な説明 (5)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]もうじき正月がやってきます。時間も技術の進歩も速いですね。このブログの更新ももっと速くしたいです。最終的には、10〜15パターンくらいは書き上げたいです。では、下記に前回の続きを記述します。  X社、Y社に納品する際 [続きを読む]
  • 私なりの詳細な説明 (4)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]前回の説明についてX社向け、Y社向けの全コードを記述します。役割がAbstractionクラスのコード >> X社向け、Y社向けの両方で共通public class Abstraction { privateImplementor impl; public Abstraction (Implemento [続きを読む]
  • 私なりの詳細な説明 (3)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]まず、手順を記述します。手順 ・パッケージの納入先である顧客X社向けのConcreteImplementorクラ スを実装します。 その実装したクラスを、ここではクラスConcreteImplementorXとします。 ・パッケージの納入先である顧客 [続きを読む]
  • 私なりの詳細な説明 (2)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]実際に前図のクラスについてパッケージの「ある一つの機能」のコードを以下に記述します。 ここでは、話をわかり易くするために、サンプルのテキストのソースを基にしてパッケージの「ある一つの機能」の例を作成します。実行結果 [続きを読む]
  • 私なりの詳細な説明 (1)
  • [[img(https://it.blogmura.com/itconsultant/img/itconsultant88_31.gif)]][https://it.blogmura.com/itconsultant/ranking.html にほんブログ村 IT技術ブログ ITコンサルティングへ(文字を )]============== 私なりの詳細な説明 START ============================== さらに私なりの詳細な説明を加えてみます。  ・分かる人には、クラス図、サンプルコードだけでも十分に理解できる と思います。 ・私の場 [続きを読む]
  • Bridgeパターン解説(4 )
  • この問題を解消してくれるのが「Bridge」パターンです。下図を見てください。この様に機能実装関係のクラスを、クラスAに保持させる(架け橋を作る)事により、機能追加しても実装関係のクラス階層には影響せず、また逆に、実装クラスを追加しても機能のクラス階層に影響しない構造にすることができました。-- 私の学習記録の追記 START-- ・青線側(左側)が機能追加、赤線側(右側)が機能実装を担うクラス階層に分離され [続きを読む]
  • Bridgeパターン解説(3)のつづき
  • Bridgeパターン解説(3)のつづき・これで、A2’は機能追加(AB)と機能実装(A2’)の両方を備えた要望どおりの クラスとなりました。・ただし、このやり方ですと機能追加ごとにA2と全く同じものを派生クラス化し て作成しなければなりません。 大変ですし見た目も良くなく、メンテナンスも大変になりそうです。A2にバグ があったとき、作成した全部のA2’、A2”、・・・A2(nダッシュ付き)を修正しな ければなりません。 -- 追記 E [続きを読む]
  • Bridge パターン解説(3)
  • そこで、下図の様にA1・A2と同じ実装内容のクラスA1'・A2'を、クラスABのサブクラスとして追加しました。これでひとまずクラスABからも、クラスA1'・A2'の実装メソッドを使用できるようになりました。が、またまた今度は、クラスABに機能を追加しなくてはいけなくなったので、クラスABCを追加しました。そのため、クラスA1''・A2''を追加しました・・・・。この様に、クラスA(AB)に機能を追加しようと思うと、そのサブクラス(機 [続きを読む]
  • Bridge パターン解説(2) のつづき
  • Bridge パターン解説(2) のつづき・この場合のA2の派生の仕方では、ABはAを継承してもA2までは継承 できません。A1も同様です。だから、ABからA1、A2を指している矢印 に×印が付いています。          -- 追記 END --みなさん、風邪には気を付けましょう。吾輩の経験では、早めのビタミンCが効きますね。あとは、早目の休み。早目の休みはサボリに思われますが、こじらせるより数倍結果オーライです。本日はここま [続きを読む]
  • Bridge パターン解説(2)
  • やはり、デザインパターンのブログは過去の遺物の解説でしかないですかね。吾輩は未だにデザパタが高生産性、高品質性、高メンイテナンス性などなど将来性有望と思っています。最近、どんどん発表されるフレームワークや、大手企業の開発ツールなどには山のようにデザパタが使われている、と内部を見たこともないのですが盲信しております。とりあえず、このBridgeパターンの解説は乗りかかった船ですので、最後まで頑張るぞ。次は [続きを読む]
  • Bridge パターン解説(1)
  • お待たせいたしました。デザインパターンの超々基本となるインタフェースの多態性の解説を終了しましたので、いよいよ、くどいくらいなデザインパターンの詳細解説を行ってまいります。まずは、便利で、複雑なデザインパターンを取り上げていこうと思います。(簡単なもの・・・・イテレーター、コマンド、ファクトリメソッドなどはもうみなさん使われているこ でしょう)Bridge パターンこのパターンは、継承を使うときに使用す [続きを読む]
  • インタフェースの多態性の説明 (4)のつづき
  • (4)のつづき です。インタフェースの存在する価値がはっきりと分かる使い方だと思います。 骨格となるプログラム (上の例ではMainPro ) はインタフェース名(上の例では polymoShori )を使ってコーディングし、インタフェースの実装は別クラスで行います。 上の例では別クラスとは、AaaとBbbクラスになります。この別クラスを上手に設計、管理すると、部品化とか、コンポーネント化と呼ばれる仕様変更に対して柔軟に対応できる [続きを読む]
  • インタフェースの多態性の説明 (4)
  •   北朝鮮問題は怖いですね。不眠症体質の私は水爆のことを考えると眠れません。原爆は核分裂、水爆は核融合のエネルギーを爆発に変えるわけで、自然も分裂より融合のほうが大きなエネルギーを生み出すのです。人類も分裂より融合(連帯、融和)の道を歩んでほしいです。今回は、前回までに記述したインタフェース、クラスを使用するクライアントクラスを記述します。 /* 上述のインタフェース、クラスのクライアントクラスとして [続きを読む]
  • インタフェースの多態性の説明 (3)
  •   いろいろな掲示板を見て回りますとデザパタは現場のプログラマーの人たちに不人気なのがわかります。私も現場でこれはデザパタを使って見た目がよくスマートなプログラムにしてみよう、と思ってクラス図を作成していると、周囲からアホと言われました。とくにリーダーから「早く動くものを作ればいいんだよっ!! 時間がないんだよっ!!!! そんな無駄なことに時間をかけるなあ〜〜!!」と一喝されました。正直、へたれま [続きを読む]
  • 過去の記事 …