gpt4 book ai didi

c++ - 面向对象 C++ : Which pattern: 2 classes with the partly same methods

转载 作者:行者123 更新时间:2023-11-27 23:29:07 25 4
gpt4 key购买 nike

问题描述:

我需要实现如下两个类:

class A1 {
common_method1();
common_method2();
foo1();
};

class A2 {
common_method1();
common_method2();
foo2();
};

foo1() 和 foo2() 有不同的逻辑。
foo1() 和 foo2() 可能有不同的参数和返回值。
常用方法相同或逻辑相似。

目标:实现能够生成 A1 或 A2 对象的工厂。
调用 factory::create() 后,分别使用 foo1() 或 foo2() 方法生成对象的类型。

问题如何更好地在 C++ C++/CLI 中实现此类逻辑?

谢谢!

最佳答案

我认为这绝对是一个标准的继承模式。创建基类 Parent , 它实现了 common_method1common_method2 .创建类 A1A2继承自 Parent .

如果您需要在 common_method1 之一中做一些特殊的套管或 common_method2 A1 中的方法或 A2 , 制作方法 virtualParent .

实现 foo1foo2分别在A1A2 .

编辑:如果我理解正确的话,您想创建一个返回 Parent 的工厂。类型引用(抽象类)。如果你想一直foo1A1对象,和 foo2A2对象,只需创建一个虚拟方法 barParent接口(interface),在 A1 中覆盖, 只会调用 foo1 , 并且在 A2 中被覆盖, 只会调用 foo2 .

关于c++ - 面向对象 C++ : Which pattern: 2 classes with the partly same methods,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6922696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com