0

如果我有一个定义为 Person 的类,它概述了人员的字段和一个只包含人员列表的人员,如下所示:

 public class Person
{
public Person(){}
public int personID {get;set;}
public string name {get;set;}
public string address {get;set;}
}



public class People
{
   public People(){}

   public List<Person> peoples {get;set;}

  public List<Person> getPeople()
  {
    List<Person> p = new List<Person>();
    //create database connection
    SqlConnection conn = new SqlConnection()
    string SQLSelct = @"select * from people where active=1";
    //open datareader


    Person onePerson = new Person();
    //write data to each property type and add data to list

    p.Add(onePerson);
    return p;

   }

}

调用从数据库中获取人员的数据库方法。

    static void main(string[] args)
{
   People p = new People();
   p.getPeople();


}

这就是我在 OOP 方面的做法吗?我刚刚开始在我的编码中使用这些技术,通常我会这样做来获取列表:

从 People 类中删除 getPeople() 并在 main 中执行此操作:

        List<Person> people = getPeople();

 static void main(string[] args)
 {
   List<Person> people = getPeople();
 }


    private static List<Person> getPeople()
    {
        List<Person> p = new List<Person>();
        //create database connection
        //open datareader
        //load data into list

        Person onePerson = new Person();

        p.Add(onePerson);
        return p;

    }
4

1 回答 1

1

首先,您可以删除空的构造函数,因为它们什么都不做。然后,如果它只是一个带有数据库读取方法的列表,就不要费心制作一个 People 类。你的 Person 类很好。但是,我认为您的出发点是错误的。

你应该从决定你的程序做什么开始:也许你有一个机场并且你正在处理时间表。在这种情况下,从机场开始。决定它做什么。如果零件是一个逻辑组,例如计划或平面,那么您就有很好的机会来上课。确保正确命名您的方法;getPeople并没有真正说明目的。考虑LoadPeopleFromDatabase

最终,您的目标应该是以易于将逻辑与无关逻辑分开的方式对问题域进行建模。

于 2013-11-05T00:13:32.220 回答