1

什么是一些最佳实践,您应该在哪里/如何组织类,以便开发人员轻松使用,没有任何困难,我正在 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;
           }
   }

}

例如,我为 HomePage、Employee、Employer 创建了单独的类(非静态):

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

.... more code.....

}

这是一个重要的问题:

用户应该能够访问这样的东西。

bool _status = Page.Employee.Status();

or

Page.HomePage.SomeMethod();

我在朝着正确的方向前进吗?

关注:我对上述方法的唯一关注是,Pages类....我将添加更多类,最终我将在类中拥有实例化类,Page这样做可以吗?

或任何其他更好的方法?

4

2 回答 2

3

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

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

bool status = new EmployeePage().Status;
于 2012-09-18T18:44:39.687 回答
0

Pages 类感觉更像是一个命名空间,而不是一个类。您在那里绘制的属性创建了一个页面,而不是获取一些东西。这感觉不对。你所建造的似乎更像是一个工厂。你想要一个工厂还是在Pages类中积累这些属性的目的是什么?

由于您对要实现的目标非常模糊,因此答案也是如此。但是在一个地方有这么多静态会立即感觉很奇怪,也许除了常量。

于 2012-09-18T18:57:04.197 回答