![]() |
1
2
设计问题很难回答,尤其是当这个例子似乎没有意义时。在这种情况下,角色创造武器是没有意义的。一个角色应该对那个角色负责。也许你可以为角色添加武器,但是,除非角色是武器制造者,否则我认为它不会真正创建一个新的武器类。 顺便说一句,我认为比这两种模式中的任何一种更好的模式都是工厂模式。创建一个负责创建武器的类。以及负责创建字符的类。这样,如果在创建角色时有3个或4个位置需要更改,则该工厂可以处理该行为,并将其包含在以后的更改中。 |
![]() |
2
5
链接或嵌套依赖性是一个非常自然的实践(尽管我必须同意TSter的观点,您的示例听起来有点奇怪),但我认为我可以理解为什么您发现它是脆弱的——也就是说,如果您向其消费者注入具体的类型。
技巧是在每个依赖级别引入一个接口,这样您就可以
独立于消费者的不同实施方式
. 作为示例,您应该定义
即使如此,具有大量深嵌套的接口仍然可能很脆弱,因为您可能需要经常更改接口本身。这最好通过努力遵守 Hollywood Principle 和 Law of Demeter 尽可能多。 |
|
simply lemon · python上链表的添加方法 10 月前 |
![]() |
HiroIshida · C++多重继承:实现具有重叠虚函数的接口[重复] 11 月前 |
|
Anonymous · 为什么在这个例子中self和类名的用法不同? 11 月前 |
![]() |
P N Singh · 在CPP Oops中调用对象而不创建它 11 月前 |
![]() |
Muthuraj · 如何创建一个通用工厂来创建某种类型的实例[重复] 1 年前 |
![]() |
Andy Votava · 从父类定义调用学生方法 1 年前 |