एक तकनीक जिसे मैंने सी # में उपयोग किया है (और सिर्फ जावा में पोर्ट किया गया है - अगर मैंने कोई त्रुटि की है, तो मैं जावा में नया हूं) स्ट्रिंगली टाइपेड क्लासेस बनाने के लिए है, उदा।एक आधार वर्ग
public abstract class StringlyTyped {
private String value;
public StringlyTyped (String value){
if (value == null){
throw new IllegalArgumentException("value must not be null");
}
this.value = value;
}
public String getValue() { return value; }
@Override
public boolean equals(Object other){
if (other == this) {
return true;
}
if (other == null || !this.getClass().equals(other.getClass())){
return false;
}
StringlyTyped o = (StringlyTyped)other;
return o.getValue().equals(this.getValue());
}
@Override
public int hashCode(){ return this.getValue().hashCode(); }
@Override
public String toString() { return this.getValue(); }
}
फिर व्युत्पन्न वर्ग
public class ProviderName extends StringlyTyped {
public ProviderName(String value) {
super(value);
}
}
और उपयोग
public void Foo(ProviderName provider) {
}
यह भावना आप कई स्ट्रिंग parametrers, उदा तरीकों जब बनाता है आप
public void Foo(String username, String password, String db, String table, String constraint)
से बच सकते हैं और इसके बजाय कोड है कि दृढ़ता से इस तरह लिखा गया है:
public void Foo(UserName username, Password password, DatabasePath db, TableName table...)
आदि ...
स्रोत
2016-04-24 10:14:49
न चर में डेटाबेस पथ भंडारण या के साथ एक databasae प्रतिनिधित्व करने के लिए एक वर्ग बनाने तरीकों में परिभाषित संचालन, अच्छा ध्वनि। – NimChimpsky