假设我有一个处理传入数据对象的方法。它必须以不同方式处理每种数据类型给出两种方法签名的选择:
void sendObjects(ObjectType enum, Collection<SendableObject> objects)
其中enum
表示集合中对象的类型,每个对象都有ObjectType getType()
方法,
和
void sendObjects(Collection<SendableObject> objects)
其中getClass()
用于确定类型。
哪种方法更好,为什么?我们最近在我公司讨论过这个问题,我很想知道社区的想法。
答案 0 :(得分:1)
枚举不会添加任何内容。实际上它存在错误,因为调用者可能会混淆它。我会检查每个对象上的类或ObjectType getType()
,但不要将枚举作为参数发送。
答案 1 :(得分:0)
尝试visitor模式。