这是一个好的设计还是错的? 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();
答案 0 :(得分:0)
我希望我能正确理解你。
简而言之,使用接口而不是类(实现)始终是好的,因为客户端代码不依赖于可以轻松更改的实现。无论客户端代码是位于同一个包还是其他任何地方。这是松耦合,它是SOLID中的D.