我试图了解有关此问题的最佳做法。我有一个有一些领域的课。现在我需要添加一个String类型的新字段。
该类的大多数实例不需要这个新的String字段,因此不会为这些实例设置它。有些实例会设置此字段。
那么我应该创建一个新的子类并将后一个实例创建为该子类吗?请说明原因。
答案 0 :(得分:2)
案例:您希望将String color
添加到Car
,但它不会用于许多用法。
我不会在这里创建一个子类,但添加:
Optional<String> color = Optional.empty();
原因:
我不喜欢null
或""
初始化,或使用Optional
。
答案 1 :(得分:0)
您的问题的答案取决于许多事情(系统处于生产状态,系统具有多少复杂性等),因此不仅有一个答案。
但在我阅读你的问题时,我提到了一些似乎是常见错误“该类的大多数实例都不需要这个新的字符串字段”。
请记住,此声明是代码味道。因为您将“额外知识”添加到不需要的对象中。这个类的更多抽象是解决这个问题的唯一方法。