Mar*_*itt 2 language-agnostic oop design-patterns anti-patterns
反模式的名称是什么,其中方法采用通用的上帝对象,它具有方法所需的每个属性,而不是明确地声明方法需要什么?
例如:
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
}
Run Code Online (Sandbox Code Playgroud)
代替
public void doSomething(User user)
{
// do stuff with user, since it's nice and clear what we want
}
Run Code Online (Sandbox Code Playgroud)
注意 - 我不是指BaseRequest违反的单一责任原则.相反,我正在寻找反模式的名称,其中方法签名对其依赖关系"撒谎".
还有,是否有任何好的博客文章简洁地解释了这种模式的邪恶,我可以指出某人?