パターン指向リファクタリング入門/Factoryによるクラス群の隠蔽
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[リファクタリング]]
* Factoryによるクラス群の隠蔽 [#tfab3f4f]
** 兆候 [#t1811a9c]
1つのパッケージ内にある共通のインタフェースを実装している...
している。
&ref(before.jpg);
** 処置 [#r1532a33]
クラスのコンストラクタをパブリックでなくし、クライアント...
&ref(after.jpg);
** 動機 [#m103db41]
クライアントが直接クラスをインスタンス化できて役立つのは...
ある場合だけである。
「共通インタフェースを実装したインスタンスを生成して返す...
これによって、
- クライアントが共通のインタフェースを通じてクラスとやり...
- パッケージ外に公開する必要のないクラスが隠蔽され、パッ...
- Factoryに用意された意図の明確なCreation Methodを用いて...
** 手順 [#gf3cadcc]
+ ある種類のインスタンスを生成するために、クラスのコンス...
-- [[メソッドの抽出>リファクタリング/メソッドの抽出]]を...
-- [[メソッドの移動>リファクタリング/メソッドの移動]] を...
+ 生成メソッドと同じ種類のインスタンスを生成するために、...
+ クラスのコンストラクタが生成するインスタンスの種類毎に...
+ クラスのコンストラクタをパブリック以外に変更する。
+ カプセル化したいすべてのクラスについて、ステップ1〜4...
** コメント [#d3d9ef06]
##comment_kcaptcha
終了行:
[[リファクタリング]]
* Factoryによるクラス群の隠蔽 [#tfab3f4f]
** 兆候 [#t1811a9c]
1つのパッケージ内にある共通のインタフェースを実装している...
している。
&ref(before.jpg);
** 処置 [#r1532a33]
クラスのコンストラクタをパブリックでなくし、クライアント...
&ref(after.jpg);
** 動機 [#m103db41]
クライアントが直接クラスをインスタンス化できて役立つのは...
ある場合だけである。
「共通インタフェースを実装したインスタンスを生成して返す...
これによって、
- クライアントが共通のインタフェースを通じてクラスとやり...
- パッケージ外に公開する必要のないクラスが隠蔽され、パッ...
- Factoryに用意された意図の明確なCreation Methodを用いて...
** 手順 [#gf3cadcc]
+ ある種類のインスタンスを生成するために、クラスのコンス...
-- [[メソッドの抽出>リファクタリング/メソッドの抽出]]を...
-- [[メソッドの移動>リファクタリング/メソッドの移動]] を...
+ 生成メソッドと同じ種類のインスタンスを生成するために、...
+ クラスのコンストラクタが生成するインスタンスの種類毎に...
+ クラスのコンストラクタをパブリック以外に変更する。
+ カプセル化したいすべてのクラスについて、ステップ1〜4...
** コメント [#d3d9ef06]
##comment_kcaptcha
ページ名:
SmartDoc