根据什么时候原始的迷恋不是代码气味?,我应该创建一个ZipCode对象来代表一个邮政编码而不是一个String对象。
但是,根据我的经验,我更喜欢看到
public class Address{
public String zipCode;
}
代替
public class Address{
public ZipCode zipCode;
}
因为我认为后者需要我转到ZipCode类才能理解该程序。
而且我相信如果每个原始数据字段都被一个类替换,那么我需要在许多类之间移动以查看定义,这感觉就像是在遭受溜溜球问题(一种反模式)。
因此,我想将ZipCode方法移到新类中,例如:
旧:
public class ZipCode{
public boolean validate(String zipCode){
}
}
新:
public class ZipCodeHelper{
public static boolean validate(String zipCode){
}
}
因此只有需要验证邮政编码的人才能依赖ZipCodeHelper类。而且我发现保持原始痴迷的另一个“好处”是:它使类看起来像其序列化形式(如果有),例如:带有字符串列zipCode的地址表。
我的问题是,“避免溜溜球问题”(在类定义之间移动)是否是允许“原始痴迷”的有效理由?