C# 通过子关系访问对象的最佳模式
哪一个更好?为什么C# 通过子关系访问对象的最佳模式,c#,domain-driven-design,C#,Domain Driven Design,哪一个更好?为什么 CurrentCustomer.Company.Employees.Select(x=>x.Name); 或: 其他例子: CurrentCustomer.Company.Employees.where(x=>x.Post==EmpPosts.Manager).Select(x=>x.Name); 或: 德米特法,又名“受保护的变化”。这是面向对象开发的基本原则之一 第二个更好,因为它允许更改实现 换句话说,当您公开第一个接口时,如果不更改使用它的所有
CurrentCustomer.Company.Employees.Select(x=>x.Name);
或:
其他例子:
CurrentCustomer.Company.Employees.where(x=>x.Post==EmpPosts.Manager).Select(x=>x.Name);
或:
德米特法,又名“受保护的变化”。这是面向对象开发的基本原则之一 第二个更好,因为它允许更改实现 换句话说,当您公开第一个接口时,如果不更改使用它的所有代码,就无法更改它。其他人编写了数百行代码来利用你的代码,而你却陷入了困境
在secod方法中,您隐藏实现,以便在将来的版本中更改它,并且客户端代码不会更改。编辑了我的答案。如果你仍有疑问,谷歌对于“受保护的变体”这是一个把握原则。
CurrentCustomer.Company.Employees.where(x=>x.Post==EmpPosts.Manager).Select(x=>x.Name);
CurrentCustomer.GetCompanyManagerNames();
//And Comany has :
//GetManagerEmployeeNames();
//And Employee has
//GetManagerNames(); And GetEmployeeNames(); methods
...