【问题标题】:How can i use complextype class or multi type class is it generic collection?我如何使用复杂类型类或多类型类是泛型集合吗?
【发布时间】:2011-02-08 07:41:13
【问题描述】:

我需要一个复杂的返回类型。我有 4 个类返回类型 COMPLEXTYPE 必须包括 Company、Muayene、Radyoloji、Satis 因为我必须返回数据切换情况我该怎么办?也许我需要通用集合我该怎么做?

  public class GenoTipController
    {
        public COMPLEXTYPE Generate(DataModelType modeltype)
        {
            _Company company = null;
            _Muayene muayene = null;
            _Radyoloji radyoloji = null;
            _Satis satis = null;
            switch (modeltype)
            {
                case DataModelType.Radyoloji:
                    radyoloji = new Radyoloji();
                    return radyoloji;
                    break;
                case DataModelType.Satis:
                    satis = new Satis();
                    return satis;
                    break;
                case DataModelType.Muayene:
                    muayene = new Muayene();
                    return muayene;
                    break;
                case DataModelType.Company:
                    company = new Company();
                    return company;
                    break;
                default:
                    break;
            }


        }
    }

    public class CompanyView
    {
        public static List GetPersonel()
        {
            GenoTipController controller = new GenoTipController();
            _Company company = controller.Generate(DataModelType.Company);
             return company.GetPersonel();

        }

    }



    public enum DataModelType
    {
        Radyoloji,
        Satis,
        Muayene,
        Company
    }

根据枚举类型会产生类。

【问题讨论】:

  • 但是你最后只返回一种类型,而不是全部!

标签: c# .net visual-studio oop architecture


【解决方案1】:

看起来你所追求的是一个界面。根据后面的代码,从您的 Generate 方法返回的 COMPLEXTYPE 必须都公开一个名为 GetPersonel 的方法。

public interface ICompany
{
   List GetPersonnel();
}

那么你的 Generate 方法就变成了:

public ICompany Generate(DataModelType modeltype)

您的 4 个类(Radyoloji、Satis、Muayene、Company)中的每一个都必须实现此接口。

【讨论】:

  • 我重新安排我的问题看下面:我想返回一个对象(来自Radyoloji类或whicy modaltype发送complexType)我的类包括所有类型
  • @programmerist:您的附加点和上述评论毫无意义。请改写。
【解决方案2】:

为什么不从 _Company 类派生 _Muayene、_Radyoloji 和 _Satis 类,并在 _Company 类中保留公共数据成员和函数(如 GetPersonel)?

【讨论】:

  • 我想返回一个对象(来自Radyoloji 类或whicy modaltype 发送complexType)我的类包括所有类型
  • 我觉得,很抱歉,您对设计的贡献并不多。我的解决方案,甚至 Jamiec 的解决方案都可以。正如 Jamiec 所说,我们无法理解您的英语。 :) 对于那个很抱歉。请清楚说明您需要什么。
【解决方案3】:

从您的代码看来,虽然您可以拥有多种类型,但您仍然确实一次只有一种,对吧?如果是这种情况,那么 Nayan 的基类或 Jamiec 的接口是不错的选择。 GenoTipController 似乎是一个工厂,而这正是它应该做的。这样一来,您的客户就不会关心具体的类型是什么。

【讨论】:

  • 我想他对工厂一无所知。算了,他不知道模式是什么。我错了吗? =D 他把break 声明放在return 之后=D
  • 那言你说;我不知道工厂模式?
  • 根据枚举类型会产生类。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-21
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
相关资源
最近更新 更多