C# 用C语言组织课堂#

C# 用C语言组织课堂#,c#,domain-driven-design,C#,Domain Driven Design,关于类的组织方式,我在C#静态类库中创建了一个框架,为特定领域提供了一系列的功能。对于如何组织类,有哪些最佳实践可以让开发人员轻松使用 这是我的设计 我创建了一个静态类: public static class Pages { //static prop to get access HomePage class public static HomePage HomePage { get { var _home = new HomePag

关于类的组织方式,我在C#静态类库中创建了一个框架,为特定领域提供了一系列的功能。对于如何组织类,有哪些最佳实践可以让开发人员轻松使用

这是我的设计

我创建了一个静态类:

public static class Pages
{
   //static prop to get access HomePage class
   public static HomePage HomePage
   {
       get {
              var _home = new HomePage();
              return _home;
           }
   }
   //static prop to get access Employee class
   public static Employee EmployeePage
   {
       get {
              var _employeePage = new Employee();
              return _employeePage;
           }
   }
   //static prop to get access Employer class
   public static Employer EmployerPage
   {
       get {
              var _employerPage = new Employer();
              return _employerPage;
           }
   }

}
我为主页、雇员、雇主创建了单独的类(非静态) 例如:

//Implementation class 
public class Employee
{    
    public bool Status()
    {
        return true;
    }

.... more code.....
}

这是一个重要的问题:

用户应该能够访问这样的内容

bool _status = Page.Employee.Status();

or

Page.HomePage.SomeMethod();
我走的方向对吗

关注点:我对上述方法唯一的关注点是,
页面
类。。。。我将添加更多的类,我将在
页面中创建实例化类
类这样做可以吗

还是其他更好的方法?

不,我绝对不会那样做。奇怪的是,对于构造函数调用来说,静态属性只是语法上的糖分(或者在本例中是误导)。如果您真的想隐藏实现类,这会更有意义(尽管我会改为使用那些静态属性方法),但我看不到这里的好处

另外,
Status
听起来应该是一个属性,而不是一个方法。哦,
员工
对我来说听起来不像是
页面
——听起来像是员工数据本身。让您的类型名称描述它们所代表的内容。所以你应该有这样的东西:

bool status = new EmployeePage().Status;

Pages类感觉更像是一个名称空间,而不是一个类。你在那里画的属性会创建一个页面,而不是得到什么。那感觉不对。你所建造的似乎更像是一个工厂。您想要工厂还是在Pages类中累积这些属性的目的是什么


因为你对你想要达到的目标很模糊,所以答案也很模糊。但是在一个地方有这么多的静态元素,除了常量之外,这立刻让人感到奇怪。

雇主
派生自
雇主
?那么如何从类型
雇主
的属性返回n
雇主
对象类型呢?Tigran:我只是举一个例子来获得一个想法,但我的核心问题是,如果我希望有这样的东西:
Page.HomePage.
如果你有更好的想法,请告诉我,这只是我项目的一个开始:)我怀疑是否有人能够帮助你的设计,因为你的例子不符合我所见过的任何C的设计或正确使用。如果你在这篇文章中加入你想要达到的目标的细节,可能会更清晰一些。Jon,谢谢,这只是我想通过的一个例子,但我明白我应该有一个更有意义的名字,但我的核心问题是,如果我希望有这样的东西:
Page.HomePage。
@AbuHamzah:你应该首先问问自己,为什么要颠覆普通的C#编码。您应该直接创建页面,或者将页面作为依赖项提供给您。我看不出你在这里建议的方法有什么好处——你在添加绒毛,没有任何好处。我清楚地听到你说的,乔恩!我的问题都是关于最佳实践的,如果你认为它不重要,你会如何设计,我想看看我在
页面中使用
prop
类的原因是为了在不实例化类的情况下访问其他类-这就是我的Classis的全部目的我把它作为一个提示来解耦从接口实现。也许您应该看看接口和类在C#中是如何工作的。这已经有很多地方需要覆盖了。但作为后续行动,你们可以调查工厂模式。没关系,你们的处境和我想做的不一样。