作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,我有这样的情况;
我的设计中有不同的项目,所有这些项目对角色都有一些特定的影响。每个项目中都有一个应用函数,因此它可以使用 Character 对象并更改其功能。但是,如果我更改 Character 函数怎么办,我将不得不根据它更改所有 Item 类。
如何有效地解耦 Item 和 Character?
我将要使用的语言是 C++,我不知道 Item 和 Character 类中的其他变量和函数。我只想将它们解耦。
最佳答案
您可以引入Character
将继承的接口(interface)(C++ 中的抽象类)。我们称它为 ItemUser
。 Item#apply
签名将被更改,以便它采用 ItemUser
而不是 Character
的对象。现在,您可以自由更改 Character
的实现,只要它遵守 ItemUser
协定即可。
关于oop - 解耦一个被大量子类使用的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39772470/
我是一名优秀的程序员,十分优秀!