日期:2014-05-20  浏览次数:20868 次

DAO如何只向外部暴露接口,并屏蔽具体实现类呢?
比如有个玩具类的DAO:ToyDAO,然后有几个具体的实现类比如玩具狗DogImpl和玩具鸭DuckImpl

一般情况下是上层调用ToyDAO来操作具体的实现类,而不是直接找做具体实现类

请问除了人为约束之外,怎么在程序中控制禁止程序员直接创建具体实现类? 
比如禁止这种DogImpl dog = new DogImpl()

------解决方案--------------------
探讨
引用:

DogImpl 构造函数改为private


然后怎么实例化?是DogImpl自己再一个getInstance() 方法,里面自己new DogImpl()吗?