カテゴリー:オブジェクト指向
-
ソフトウェア設計の目標として大事になるのは、もちろん仕様どおりきちんと動くということが最低目標ですが、次に大事になるのが下記の指標です。 保守性 再利用性 今までは、「実行効率」とかも求められましたが、現在はハードウェ…
-
「Proxy(プロキシ)」ってどんなパターン? 既存クラスのメソッドが呼ばれた際に、一旦中間的な処理を実行してから渡すパターンです。 メリット あるメソッドに、中間的な処理を加えることができます。 中間的な処理の例としては下記で…
-
「Flyweight(フライウェイト)」ってどんなパターン? 小さくて軽いオブジェクトをたくさん作りたい場合に有効なパターンです。 メリット オブジェクトの生成や、保持に必要なトータルの負荷(メモリ)を下げることができます。 実…
-
「Facade(ファザード)」ってどんなパターン? 既存のクラスを組み合わせて使う手順を外出しすることができます。 メリット よく使うクラスのメソッドのうち、汎用性の高い物を、publicにして開発者間で共有したりすることで、開発スピ…
-
「Decorator(デコレータ)」ってどんなパターン? 既存クラスのインターフェイスを変更せずに、機能を追加したい場合に使えるパターンです。 メリット クラスを継承するよりも、自由度が高い方法で、機能を追加することができます。 ど…
-
「Adapter」ってどんなパターン? 既存のクラスに、別のインターフェイス(メソッド)を持たせたい場合に使えます。 例えば、「クラスA」と、「クラスAに似ているが微妙に異なるクラスB」があり、クラスBをクラスAと同じプログラムの中で、…
-
「Singleton」ってどんなパターン? あるクラスのオブジェクトを一つだけ作り、各クラスで共有したい場合に使うパターンです。 メリット 「システムの起動から、終了まで、そのクラスのオブジェクトが一つしか存在しないこと」を保証できま…
-
【UML】クラス図について
05.06
クラス図とは? 従来の構造化プログラミングにはなかった概念を表現するために作られた図になります。 主に以下のようなオブジェクト指向の概念を意識して作っていくことになることが多いでしょう。 汎化、特化(継承) 関連 …
-
【Java】オブジェクト指向:カプセル化
04.30
Javaのオブジェクト指向のカプセル化は、「しかるべき、クラスやメソッドからしかアクセスさせない」というプログラムの中でのアクセス制御の考え方です。 フィールド、メソッドに対するカプセル化 アクセス修飾子 Javaでは、下記のアクセス…
-
静的フィールド Javaでは、クラスをnewした場合は、基本的に別々のインスタンスとなり、別々の値を持つことになります。 ただ、開発していると「各インスタンスで共有したい情報」も出てくると思います。 その場合は、下記のようにフ…