OOP
デザインパターンは,変化に強いコードを書くための戦略を集めたカタログです.カタログであるが故に,自分の欲しいものが必ずしも見つかるとは限りません.よって,「どのデザインパターンを使おうかなぁ」から始まるコーディングは不適切なやり方と言えま…
オブジェクト指向設計の原則をソラで言ってみる - diary の答え合わせ. 単一責任の原則(SRP: Simple Responsibility Principle) クラスを変更する理由は1つ以上存在してはならない. オープン・クローズドの原則(OCP: Open Closed Principle) ソフトウェア…
単一責任の原則(SRP: Simple Responsibility Principle) 1つのクラスは1つの責任を全うしなければいけない. インターフェース分離の原則(ISP: Interface Separated Principle) インターフェースは,クライアントが必要としないメソッドを実装する責任を実装…
オブジェクト指向プログラミングでは,継承によって関連をもつクラスを次のように呼びます. スーパー/サブクラス 基底/派生クラス 親/子クラス このエントリでは, 「親クラス」「子クラス」という呼び名は不適切なのでは? という意見とその理由についてま…
2012年の11月頃からJavaを勉強し始めたので,気付けば2年が過ぎてました.Javaを触ると避けて通れないのが,「オブジェクト指向」です.2年前に使えたのはC言語だけだったので, オブジェクト指向とは何か という疑問が生まれていろいろ調べるわけですが,し…
Jeff Bay は The ThoughtWorks Anthology の中で,オブジェクト指向エクササイズ(Object Calisthenics)を提案しています.このエクササイズでは,次の9つのルールを守らなければいけません. メソッドのインデントは1つまで else句を使わない すべてのプリミ…
SetやListなどのコレクションを全く使わないプログラミングはほとんど有り得ません.コレクションを使うとなれば,その中から特定の条件を満たすオブジェクトを抽出するメソッドが必要になることがあります.このエントリでは,コレクションに対するクエリメ…
情報を隠蔽せよ public Book { private String title; private int price; public Book(String title, int price) { this.title = title; this.price = price; } public String getTitle() { return name; } public int getPrice() { return price; } } オブ…
オブジェクト指向言語の参考書では フィールドを private に フィールドの取得は getter を使って が基本のように書いていることが多いように思います.でも,その getter は本当に必要ですか?もしかしたら getter がクラス間の関係を複雑にしているかもしれ…