0
良い設計ですか、間違っていますか? Daoクラスはパッケージ外ではアクセスされません。パッケージアクセス修飾子内でのみ作成されます。すべてのアクセスはインターフェイスを介してのみです。パッケージの外部からのパブリックアクセスは、工場でインスタンスを作成する場合にのみ発生します。
の作成と呼び出しpublic interface IDao {
void perform();
}
//package access
class Dao implements IDao{
private Dao(){}
@Override
void perform(){...}
Dao getInstance(){
...
return new Dao();
}
}
//in the same package as Dao
public class DaoFactory{
private DaoFactory(){}
public static IDao createDao(){
return Dao.getInstance();
}
}
:
IDao dao = DaoFactory.createDao();
dao.perform();
これが良いデザインであるかどうかは、問題を解決しようとしているかどうかによって大きく左右されます。あなたはここで何をしようとしているのかについていくつかの文脈を提供できますか? – azurefrog
私は外部接続へのインターフェイスを提供しようとしているし、私は上記のようにカプセル化したい。 – viavad