对于在哪里/如何组织类以便开发人员可以轻松使用的方式,我们正在创建一个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
类可以吗?
或任何其他更好的方法?
答案 0 :(得分:3)
不,我肯定不那样做。对于构造函数调用,有一个静态属性只是语法糖(或者在这种情况下是misdirection),这很奇怪。如果你真的想要隐藏实现类,它会更有意义(虽然我会改为使用那些静态属性方法)但是我没有看到这里的好处。
此外,Status
听起来应该是属性,而不是方法。哦,Employee
对我来说听起来不像Page
- 这听起来就像员工数据本身。让您的类型名称描述它们代表的内容。所以你应该有类似的东西:
bool status = new EmployeePage().Status;
答案 1 :(得分:0)
Pages类感觉更像是命名空间而不是类。您在那里勾画的属性创建页面而不是获取某些内容。这感觉不对。你建造的东西似乎更像是一个工厂。你想要一个工厂,或者在Pages类中积累这些属性的目的是什么?
由于你对你想达到的目标非常模糊,答案也是如此。但是在一个地方有这么多静态会立即感到奇怪,除了常数之外。