gpt4 book ai didi

c# - 使用 SOLID 设计模式在单个类中添加多个类数据

转载 作者:行者123 更新时间:2023-11-30 18:22:26 25 4
gpt4 key购买 nike

我有 ProductItem1Item2 类。目标是将产品类中的所有项目合并到一个列表中,以便它们可以被分类并且显示在客户的网站上。我希望使用 SOLID 原则在 C# 中实现这一点

public class Product
{
public Guid Id { get; set; }
public string Name { get; set; }
public string Type { get; set; }
}
and here are list of datas are in this class
-- var list1 = new List<Item1>();
public class Item1
{
public Guid Id { get; set; }
public string Name { get; set; }
}
-- var list2 = new List<Item2>();
public class Item2
{
public Guid Id { get; set; }
public string Name { get; set; }
}

如有任何帮助,我们将不胜感激。

最佳答案

假设您想要覆盖产品的值并有一个子项目列表,我建议您将您打算覆盖的值声明为虚拟值,并提供另一个可用的类,该类也可以将项目列表作为必需,同时从父产品表继承。

    public class Product
{
public virtual Guid Id { get; set; }
public virtual string Name { get; set; }
public virtual string Type { get; set; }
}

public class ProductFull : Product
{
public override Guid Id { get; set; }
public override string Name { get; set; }
public override string Type { get; set; }

public List<Item1> Item1s { get; set; }

public List<Item2> Item2s { get; set; }
}

public class Item1
{
public Guid Id { get; set; }
public string Name { get; set; }
}

public class Item2
{
public Guid Id { get; set; }
public string Name { get; set; }
}

来自 MSDN:

虚拟属性的行为类似于抽象方法,除了声明和调用语法上的差异。在静态属性上使用 virtual 修饰符是错误的。通过包含使用 override 修饰符的属性声明,可以在派生类中覆盖虚拟继承属性。

关于c# - 使用 SOLID 设计模式在单个类中添加多个类数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33928344/

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