这种反模式的名称是什么?方法签名是骗子
问题描述:
反模式的名称是什么?方法使用一个通用的神对象,它拥有您可能需要用于某个方法的每个属性,而不是显式声明该方法需要什么?这种反模式的名称是什么?方法签名是骗子
如:
public class BaseRequest
{
User user;
Car car;
CustomerRecords customerRecords;
Folder folder;
// ... etc for 10 - 20 other unrelated parameters
}
public void doSomething(BaseRequest request)
{
User user = request.getUser();
// do stuff with user, ignore all other attributes of request
}
而不是
public void doSomething(User user)
{
// do stuff with user, since it's nice and clear what we want
}
注 - 我不是指单一责任Princple这BaseRequest
违反。相反,我正在寻找方法签名关于它的依赖关系“撒谎”的反模式的名称。
另外,有没有什么好的博客文章能够简洁地解释这种模式的恶性,我可以指出某人呢?
为什么你确定每一个愚蠢的想法在创作中被认为是一种“反模式”? – bmargulies 2011-03-30 21:33:00
@bmargulies这一次碰巧是:) – Bozho 2011-03-30 21:33:53