Trong một số previous question một trong các ý kiến từ Dr. Herbie về câu trả lời được chấp nhận là phương pháp của tôi đã thực hiện hai trách nhiệm .. đó là thay đổi dữ liệu và lưu dữ liệu.Cách tốt nhất để phân tách các mối quan tâm đối với mã này là gì?
Điều tôi đang cố gắng tìm ra là cách tốt nhất để phân tách các mối quan ngại này trong tình huống của tôi.
Tiến về với ví dụ của tôi về việc có một đối tượng chính sách được lấy thông qua NHibernate ....
Con đường tôi hiện đang thiết lập chính sách để ít vận động là như sau:
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);
}
Nếu Tôi đã phân chia trách nhiệm truy cập dữ liệu và cập nhật dữ liệu những gì sẽ là cách tốt nhất để đi về nó?
Là nó tốt hơn để có PolicyManager (đóng vai trò như cửa ngõ vào dao) quản lý nhà nước của các đối tượng chính sách:
Policy policy = new Policy();
policy.Status = Active;
policyManager.Inactivate(policy);
policyManager.Update(policy);
//method in PolicyManager
public void Inactivate(Policy policy)
{
policy.Status = Inactive;
}
Hoặc có các đối tượng chính sách duy trì đó là trạng thái riêng và sau đó sử dụng lớp quản lý để lưu thông tin vào cơ sở dữ liệu:
Policy policy = new Policy();
policy.Status = Active;
policy.Inactivate();
policyManager.Update(policy);
//method in Policy
public void Inactivate()
{
this.Status = Inactive;
}