newは具象クラスをインスタンス化する。コードの柔軟性を保つためにインターフェースを使いたい。Decoratorパターンはオブジェクトに付加的な責務を動的に付与する。デコレータはサブクラス化の代替となる、柔軟な機能拡張手段を提供する。継承を使って飲み物を増やすのはクラス爆発や硬直した設計になる。Observerパターンは、オブジェクト間の1対多の依存関係を定義し、あるオブジェクトの状態が変化するとそれに依存しているすべてのオブジェクトが自動的に通知され更新されるようにする。共通の処理を抽象クラスに書きサブクラスが継承する。いわゆる差分プログラミング。飛ぶ振る舞いを基底クラスに追加したがDuckのすべてのサブクラスが飛ぶ必要はない。アーキテクチャとは、設計の構造であり、アプリケーション内において重要である部分とそれらの重要部分間での関係に着目する。アーキテクチャとは、システムの組織化された構造である。今まではせいぜい10個程度のクラスのアプリケーションを開発してきた。→大きな問題も小さな問題と同じように解決する。アプリケーションの変更時に問題が発生するのは、ソフトウェアの柔軟性が足りないから。「凝集度」を高めて結合の問題を解決する。ソフトウェアの変更が困難になっていれば顧客からの変更要求に対応することが難しくなる。既存のソフトウェアの設計を改善することを通して、柔軟な設計を学ぶ。テキスト分析によって、今まで作成してきたユースケースを顧客が必要とする内容を表現するクラスやメソッドに変換する方法を学ぶ。ソフトウェアは理想の世界ではなく、現実世界で動作する必要がある。設計やアプリケーションがどんなに素晴らしくても、やがてアプリケーションは成長し変更される。この章では、要件変更に対応するための方法を学ぶ。素晴らしいソフトウェアへの第1歩は、顧客が必要としている処理の実行。オブジェクト指向設計』を読み始めた。顧客志向の考え方が非常に良いと思う。コードを書いてWebアプリケーションを作る目的は顧客の要望を叶え、必要な機能を提供することなのだ。コードが汚いとかきれいとかは結局、顧客にとっては関係ない。様々なアルゴリズムを、それが発生するコンテキストに応じて使い分けられるようにする。要求を行うクライアントや操作対象データによって、適用するアルゴリズムを選択する。修正することのできない既存オブジェクトを、特定のインターフェースに適合させる。既存のクラスを修正することなく、適切なインターフェース(メソッド)を追加することができる。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。