如果我有一个定义为Person的类,它概述了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;
}
答案 0 :(得分:1)
首先,您可以删除空构造函数,因为它们什么都不做。然后,如果它只是一个带有数据库读取方法的列表,请不要打扰制作People类。你的Person课很好。但是,我认为你是从错误的一方开始的。
您应该首先决定您的计划的作用:也许您有一个机场而且您正在处理时间表。在这种情况下,从机场开始。决定它做什么。如果零件是一个逻辑组,例如Schedule或Plane,那么您就有机会上课。确保为您的方法命名; getPeople
并没有真正说明目的。考虑LoadPeopleFromDatabase
。
最终,您的目标应该是以简化逻辑与不相关逻辑分离的方式对问题域进行建模。