2
有方法的角色包含實際的算法,但上下文執行方法應執行什麼操作,但執行其中一種方法?DCI上下文的責任?
public class SomeContext
{
// ... Constructor omitted ...
public void Execute()
{
// Is this all?
someRole.DoStuff(this.anotherRole, this.otherData);
}
}
這看起來很簡單,所以我在想,背景中應該負責的,例如數據庫查詢。這不會簡化有效的角色嗎?
因此,使用文本字符串(如搜索查詢)實例化上下文,讓它使用ORM查找域對象並將它們傳遞給Role方法,這是它應該承擔的責任? – ciscoheat
當然也可能有其他構造函數,所以可以將RolePlayers傳遞給上下文。 (Execute方法將測試對象是否存在,因此構造函數中沒有任何工作) – ciscoheat
@ciscoheat上下文通過ORM查找角色扮演者是非常合理的。但是,您不會將RolePlayers傳遞給角色方法。 RolePlayer的角色方法就像任何其他對象上的實例方法。所以someRolePlayer.ARoleMethod()是你將如何調用它而不是ARoleMethod(someRolePLayer); –