- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
让一个库包含以下类层次结构:
class LuaChunk
{
};
class LuaExpr : public LuaChunk
{
};
class LuaScript : public LuaChunk
{
};
现在我想通过扩展这两个类在我的应用程序中使用这个库:
class AppLuaExpr : public LuaExpr
{
private:
Foo * someAppSpecificMemberFoo;
Bar * someAppSpecificMemberBar;
};
class AppLuaScript : public LuaScript
{
private:
Foo * someAppSpecificMemberFoo;
Bar * someAppSpecificMemberBar;
};
这里的问题是,如果我有很多成员,每个成员都有自己的一对 getter/setter,就会产生大量代码重复。
有没有一种方法,不使用多重继承(我想避免)来将 AppLuaExpr
和 AppLuaExpr
中包含的特定于应用程序的东西放在一起?
我查看了 Wikipedia 上列出的现有结构设计模式,但似乎没有任何一种适用于我的问题。
谢谢。
最佳答案
您可以将公共(public)数据表达为它们自己的类,并在构造期间传递它。这样您就可以使用组合封装所有内容。
class Core { };
class Component {
int one, two;
public:
Component(int one, int two) : one(one), two(two)
{}
};
class Mobious : public Core
{
Component c;
public:
Mobious(Component &c) : Core(), c(c) { }
};
class Widget : public Core
{
Component c;
public:
Widget(Component &c) : Core(), c(c)
{}
};
int main(void)
{
Widget w(Component{1, 2});
Mobious m(Component{2, 3});;
return 0;
}
关于C++ - 将两个子类的共同成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36008299/
所以,我有一个类似于 this one 的用例,但我觉得有一些额外的细节值得提出一个新问题。 ( related questions ,供引用) 我正在编写一个实现 a cycle 的数据结构.基本设
我正在使用 Django 编写一个社交网络应用程序,需要实现类似于 Facebook“Mutual Friends”概念的功能。我有一个像这样的简单模型: class Friend(models.Mo
我有一个 iOS 应用程序,用户可以在其中使用 Facebook 登录并授予 user_friends 权限。从 Graph API 2.0 开始,Facebook 声称你无法获取两个人之间所有的共同
我想知道将来对我来说最简单的方法是什么,可以使查询既有效又不那么复杂。 我应该像这样保存双向关系吗 from_id=1, to_id=2from_id=2, to_id=1 或者只创建一个唯一的行 f
我是一名优秀的程序员,十分优秀!