这种反模式的名称是什么?方法签名是骗子

问题描述:

反模式的名称是什么?方法使用一个通用的神对象,它拥有您可能需要用于某个方法的每个属性,而不是显式声明该方法需要什么?这种反模式的名称是什么?方法签名是骗子

如:

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违反。相反,我正在寻找方法签名关于它的依赖关系“撒谎”的反模式的名称。

另外,有没有什么好的博客文章能够简洁地解释这种模式的恶性,我可以指出某人呢?

+1

为什么你确定每一个愚蠢的想法在创作中被认为是一种“反模式”? – bmargulies 2011-03-30 21:33:00

+2

@bmargulies这一次碰巧是:) – Bozho 2011-03-30 21:33:53

我会说这只是具有god object的效果。当上帝对象不存在时,问题应该不存在存在。