我正在努力学习OOP方法的最佳实践。所以我想说我有这个代码(顺便说一下C#):
class Player
{
private Connection conn;
public Update(Keyboard key)
{
if(key.IsPressedKey("a"))
{
// should move
conn.SendPacketMovement(Movement.Left);
}
}
}
如果我想调用Connection类实例中的方法,我该怎么办?我不想为Update方法添加返回值,因为它似乎不是一个非常好的做法。
在这种情况下,当我想要几个课程做不同的事情时,我该怎么办?我应该使用代表和活动吗?如果是这样,我如何订阅它们。我应该在创建Player实例时订阅它们吗?
答案 0 :(得分:1)
最后,总是在另一个方法的范围内调用方法。然而,授权确实是一种很好的做法。例如,如果您的类行为可能由不同的委托以不同方式实现,您可以应用责任链模式来减少耦合http://en.wikipedia.org/wiki/Chain-of-responsibility_pattern