カテゴリー:オブジェクト指向
-
インターフェース分離の原則とは? 「クライアントに、クライアントが利用しないメソッドへの依存を強制してはならない」というインターフェースを作る際の原則 クライアントが本当に必要としているインターフェースのみがクライアントから見え…
-
【オブジェクト指向】「DIコンテナ」について
05.15
DIコンテナ 注入される側のクラスと注入する側のクラスの対応リストを保持しておきます。 事前に依存するオブジェクトを登録しておいて使う時になったらDIコンテナ経由でオブジェクトを取得します。この設定などはスタートアップスクリプトなど…
-
DIとは? 外部からインスタンスを注入すること。例:Oracleインスタンス(依存性)を外からコンストラクタにて与えてあげる実装をする。 イメージ的に 昔のスーパーファミコン(上位モジュール)とカセット(下位モジュール)の関係。スーパ…
-
SOLIDの観点から見たこの原則の私的見解 基本的にはSOLIDにおいて「バリエーションがあるコードを書く際に意識する原則の一つ」になります。 バリエーションを意識したコードを書く際に意識する際の原則として他には「オープンクローズド…
-
【オブジェクト指向】「結合エンティティ」について
04.09
基本的には1テーブル、1エンティティという形でクラスを作ると良いです。 ただ、SQLのSELECT文で結合が発生する場合はどうでしょうか。 結論 基本的には、結合された結果のエンティティを作るのが良いです。(場合によっては1テーブ…
-
業務では「少し違うけど似たような処理」を実装することが求められるシーンは多いと思います。このような処理を実装する場合は継承を使うのは基本NGになります。以下の記事でも詳しく解説しています。 http://www.code-magagi…
-
平たく言えば「継承のガイドライン」です。 前提 基本的にバリエーションを作る場合(シルバー会員クラス、ゴールド会員クラスなど)の継承のガイドラインである点です。 例えば、MicrosoftのテクノロジーのTextBoxコントロール…
-
インターフェース ストラテジーパターンになります。 インターフェースを使って同一視させることで、無駄な変数の数を減らすことができます。 同一視できてない場合 [crayon-6428944dd2308195724517/] 同…
-
集約(has a関係) 自クラスの性質に直接関係のない場合はこちらを使う。 BがAの機能が欲しい場合に「BがAをクラスのメンバとして持つ」という考え方です。 Bのメソッドの中でAの処理を行うので外部(クライアント側)に知識が漏…
-
【オブジェクト指向】「単一責任の原則」
03.26
概念的な話 クラスが担う責任はたった一つにするべきという原則。クラスを仕様変更する理由を一つにする。(複数の仕様で一つのクラスを使い回さない) 「単一責任の原則」は二つの側面がある。 単一責任の原則は人によって言っていることが微妙に変…