以下のメッセージを削除します。


[2008] Re:Javaの実装の隠ぺいに関して
返信


投稿者:(ぱ)こと管理人
2017/10/05 08:33:28

Link:
はじめまして。拙著を読んでいただきありがとうございます。

>しかし、Factory.java内で"import com.sample.libimpl.*"を記載せざるを得ません。
>何を気にしているかというと、Cで言えば、パブリックなヘッダに、プライベートなヘッダを書いているようなコードに見える点です。
>利用者から完全に〜impl部分を隠ぺいする一般的な手法はあるのでしょうか。

これは確かにその通りなのですが、私はこれについては
「まあ、Factoryだけはしょうがない」
と考えています。
どこかで実装クラスが何であるかを明示しなければいけない以上、
そこでは実装側のパッケージをimportせざるを得ません。
# 「Java謎+落とし穴〜」にどう書いたかと思って見返したら、
# 「実はここが頭の痛いところなのですが〜」と書いてますね……

利用者からさらに実装を隠蔽し、状況によって実装クラスを
差し替える手法として、Dependency Injectionという考え方もあります。
ただ、実装をあまり分離しすぎると、それはそれでわかりにくくなったりもします。

https://twitter.com/kudzu/status/862906043591925762
>DI使ってコード書いてるわし「こんな簡潔にモジュラーでテスタブルなコードが書ける!すごい!天才!」
> DI使った他人のコード読んでるわし「おい、これどこから呼ばれてんだよ。わかんねぇぞ。○すぞ。」

パスワード:

管理者削除