我有 SaveManager 抽象类和具体类 TVSaveManager、DataSaveManager 和 VoiceSaveManager 实现 SaveManager 抽象类。
List<SaveManager> lstPrdSaveManager;
public SaveResponseModel SaveProducts(SaveProductsRequest objSaveProductsRequest)
{
SaveResponseModel saveResponseModel = new SaveResponseModel();
lstPrdSaveManager = SaveManagerFactory.GetSaveManagers(objSaveProductsRequest, saveResponseModel);
lstPrdSaveManager.ForEach(saveManager =>
{
saveResponseModel = saveManager.MapAndSaveProduct();
});
return saveResponseModel;
}
Run Code Online (Sandbox Code Playgroud)
工厂类将决定创建哪个管理器并向我们发送列表。我将循环遍历列表并调用每个具体类都将遵守的公共接口“MapAndSaveProduct”。我想更多或者更像是一种策略模式。
但问题是所有具体的 savemanage 的 MapAndSaveProduct 方法的返回类型都是不同的。TvSaveManager 的 TVResponse 和 DataSaveManager 的 DataResponse 等等。因此,我创建了 SaveResponseModel 类来组合所有返回类型(我将 SaveResponseModel 传递给工厂,以便它将传递给所有具体的 savemanager 类的构造函数。单个类将设置所需的属性。例如 TvSaveManager -> saveResponseModel.TvResponse)。我得到了想要的结果,并且代码看起来很干净。
问题是,1)当我们有不同的类型时,使用这种模式是否正确?2)如果具体类有不同的类型,我们不应该使用策略模式吗?3)在这种情况下我应该采用不同的设计模式吗?如果是的话是哪一个?
javascript中的文字对象实例化不是单例吗?
当然,如果未找到对象,则不会有“自身”实例化,但只会保留该对象的一个“副本”。
你怎么看?
我目前在代码中实现三元关联时遇到一些麻烦。我得到了二进制关联,但我不确定三元关联。
这是大学里的典型场景。
讲师可以向一名或多名学生教授一门科目
学生只能由一名讲师教授一门科目
讲师只能向一名学生教授一门科目
这三个类之间存在三元关联。
这三个类之间的关系如下面的 UML 类图所示,并且存在多重性
我在互联网上阅读了有关此问题的不同来源,但找不到解决方案
如何实现这三个类之间的关联?或者,一般来说,实现类之间关联的可能方法是什么(在java中)?
class Data {
double a, b, c;
};
int main() {
Data x, y, z;
cout << sizeof(x) << endl;
cout << &x << " " << &y << " " << &z << endl;
}
Run Code Online (Sandbox Code Playgroud)
上述代码的输出是:
24
0x7ffd911f5640 0x7ffd911f5660 0x7ffd911f5680
Run Code Online (Sandbox Code Playgroud)
我的问题是: Data 类对象只需要 24 字节的空间,那么为什么编译器为每个对象分配 32 字节(0x7ffd911f5640和之间的内存空间)?0x7ffd911f5660
我通过对如此不同的问题去,并试图找出什么是设计一个应用程序.我发现,某个地方,这是写我们应该做的类的对象,如果它有一个状态的最佳方式本.
我在同一页面上发现应避免使用实用程序,所以我的问题是如何实现该功能.我们无法创建对象,因为功能可以具有且不具有状态.我们也不能使用静态方法.那怎么样.
PS ----我的问题可以是外行bcoz我是新手试图学习/实现设计模式所以如果有人可以提供我的阅读材料,与例子的链接会很高兴.
我从理论上知道了一些设计模式.
我有一个具有 30 个属性的 DTO,需要向其中添加一些属性。许多其他类使用此 DTO,有些类使用 10 到 20 个属性,有些其他类使用全部 30 个属性。
在一个类中,我可以创建一个使用 10 个属性的 DTO,其余 20 个属性将为空吗?
在这种情况下,通过继承或其他方式将 DTO 拆分为 2-3 个 DTO 是一个好方法吗?
假设我有一个继承树,如下所示:
Car -> Ford -> Mustang -> MustangGT
Run Code Online (Sandbox Code Playgroud)
为每个类定义接口有什么好处?例:
ICar -> IFord -> IMustang -> IMustangGT
Run Code Online (Sandbox Code Playgroud)
我可以看到,也许其他类(如Chevy)将要实施Icar或IFord,甚至IMustang,但可能不是IMustangGT因为它是如此具体.在这种情况下接口是多余的吗?
另外,我认为任何想要实现的类IFord肯定都希望通过继承来使用它的一个继承,Ford以免重复代码.如果这是给定的,那么实施的好处是IFord什么?
关于泛化和继承的研究让我感到困惑,两者都给出了相似的含义,好像某些东西被继承了......但是无法弄清楚实际的差异.
ooad ×10
oop ×6
class ×2
inheritance ×2
java ×2
architecture ×1
c# ×1
c++ ×1
dto ×1
interface ×1
javascript ×1
uml ×1
wcf ×1