よると、原始的強迫観念ではないコードのにおいがある場合は?、Stringオブジェクトの代わりに郵便番号を表すZipCodeオブジェクトを作成する必要があります。
しかし、私の経験では、私は見たいです
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を持つアドレステーブルなど、クラスがシリアル化された形式のように見えます。
私の質問は、「ヨーヨーの問題を回避する」(クラス定義間を移動する)が「原始的な強迫観念」を許可する正当な理由ですか?