0

哪一个更好?为什么?

CurrentCustomer.Company.Employees.Select(x=>x.Name);

或者 :

CurrentCustomer.GetCompanyEmployeeNames();

其他示例:

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
...
4

1 回答 1

2

得墨忒耳法则又名受保护的变体。它是OO开发的GRASP原则之一。

第二个更好,因为它允许更改实现。

换句话说,当您公开第一个接口时,您无法在不更改所有使用它的代码的情况下更改它。其他人编写了数百行代码来利用你的代码,而你却被卡住了。

在第二种方法中,您隐藏了实现,以便您可以在将来的版本中更改它,并且客户端代码不会更改。

于 2013-09-01T08:57:38.650 回答