previous question स्वीकृत उत्तर पर Dr. Herbie की टिप्पणियों में से एक यह था कि मेरी विधि दो जिम्मेदारियां कर रही थी .. डेटा बदलने और डेटा को सहेजने की स्थिति।इस कोड के लिए चिंताओं को अलग करने का सबसे अच्छा तरीका क्या है?
जो मैं समझने की कोशिश कर रहा हूं वह मेरी परिस्थितियों में इन चिंताओं को अलग करने का सबसे अच्छा तरीका है।
Policy policy = new Policy();
policy.Status = Active;
policyManager.Inactivate(policy);
//method in PolicyManager which has data access and update responsibility
public void Inactivate(Policy policy)
{
policy.Status = Inactive;
Update(policy);
}
हैं:
एक नीति वस्तु जो NHibernate के माध्यम से लिया गया है होने के अपने उदाहरण के साथ पर ले जाने ....
तरह से मैं वर्तमान नीति सेट कर रहा हूं निष्क्रिय करने के लिए इस प्रकार है मैं डेटा एक्सेस और डेटा अपडेट की ज़िम्मेदारी को अलग करना था इसके बारे में जाने का सबसे अच्छा तरीका क्या होगा?
बेहतर PolicyManager (जो दाव के लिए प्रवेश द्वार के रूप में कार्य) नीति वस्तु की स्थिति को प्रबंधित करने के लिए है:
Policy policy = new Policy();
policy.Status = Active;
policyManager.Inactivate(policy);
policyManager.Update(policy);
//method in PolicyManager
public void Inactivate(Policy policy)
{
policy.Status = Inactive;
}
या नीति वस्तु को बनाए रखने के लिए यह अपने राज्य है और उसके बाद का उपयोग करने के लिए प्रबंधक वर्ग डेटाबेस में जानकारी सहेजने के:
Policy policy = new Policy();
policy.Status = Active;
policy.Inactivate();
policyManager.Update(policy);
//method in Policy
public void Inactivate()
{
this.Status = Inactive;
}