[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10170] Re: 教えて下さいそして etc.



はじめまして、慶治です。


>”staticファクトリーメソッドの短所はpublic あるいはprotectedのコンスト
>  ラクタを持たないクラスのサブクラスを作ることが出来ないことです。”
>
>しかし上記の制限はstaticファクトリメソッドを使用する場合に限らず直接
>new でオブジェクトを生成する場合にも当てはまると思うのですが、何故
>ファクトリメソッドの短所としてわざわざ挙げているのでしょうか?
>
>static ファクトリメソッドを使用すると何かパッケージスコープなどの解釈
>が、直接newを呼出す場合と異なり、制約を伴う場合がありますか?

new して使うクラスは、必ずprivateではないコンストラクタを持っているからでは
ないでしょうか。(内部クラスを除く)
#そうしないと、使えない・・・。

static ファクトリメソッドを作ってしまうと、privateなコンストラクタしか
持たないクラスでも外部にインスタンス生成の手段を提供できるので、
上記の制約に引っかかない。
ゆえにサブクラス作るときに困るということでしょう。


以上

----
SATO Yoshiharu  zan03304@xxxxxxxxx