要从中选择的接口集合,Java
考虑一下,包装在要从中选择的接口集合,Java,java,Java,考虑一下,包装在DataContainer中的对象将被分发给客户机 // Will be handed out public interface DataContainer 为了使用它,客户端当前需要知道将对象强制转换为: public interface ConcreteObject_1_Container extends DataContainer public interface ConcreteObject_2_Container extends DataContainer 是否可
DataContainer
中的对象将被分发给客户机
// Will be handed out
public interface DataContainer
为了使用它,客户端当前需要知道将对象强制转换为:
public interface ConcreteObject_1_Container extends DataContainer
public interface ConcreteObject_2_Container extends DataContainer
是否可以同时提供ConcreteObject1Container
和ConcreteObject2Container
作为选项进行选择,类似于如何选择Enum
选项
而不是用户神奇地知道如何使用FileContainer
// user knows
FileContainer fileContainer = (FileContainer)
ContainerFactory.getContainerFor(DataSource.FILE,
TREAT_AS_SOURCE);
我想
// user selects
FileContainer fileContainer = (GenericContainer.FileContainer)
ContainerFactory.getContainerFor(DataSource.FILE,
TREAT_AS_SOURCE);
如果您可以将GetConataIner设置为泛型方法,那么它将能够使用类型推断返回特定类型。您可能应该更改您的设计。要么:
一个方法可以有1个返回类型,该类型是
GenericContainer
,DataContainer
是否有第三个实现?如果没有,就不需要了解实现,您可以将客户端需要的所有方法都放在接口中。问得好。“否”DataContainer
的唯一用途是充当getcontainer中的返回类型,用于
方法。但是,ConcreteObject1Container
列出了具体返回类型为A
的方法,而ConcreteObject2Container
列出了具体返回类型为B