希罗·尤尔 - 2007-1-10 12:57:00
讨论一个学籍管理系统,为简化问题,假设学生只有学号、姓名、电话号码三个属性,常见的类设计是
public class student
{
string NO;
string Name;
string TeleNumber;
string StuNO
{
get
{
return NO;
}
set
{
NO = value;
}
}
//省略一堆get、set
public void insert();
public void update();
public void delete();
}
然后这样调用:
student stu = new student();
stu.StuNO = NO.text;
stu.StuName = Name.text;
stu.StuTeleNumber = TeleNumber.text;
stu.insert();
另一种设计是:
public class Student
{
public void insert(string NO,string Name,string TeleNumber);
public void update(string NO,string Name,string TeleNumber);
public void delete(string NO);
}
然后这样调用:
student stu = new student();
stu.insert(NO.text,Name.text,TeleNumber.text);
简单说一下我的疑问,采用第一种设计的时候,类有成员变量,使用的时候,实际上是给每一个成员变量赋值,然后再调用函数,往数据库插入新的学生记录,但是这样做是不是有这样一些问题:首先,把文本框的值一一传给对象是不是多余?直接作为函数参数是不是就省了这样的一步?其次,当调用delete方法的时候,根本不需要用到Name和Telephone,这两个变量是不是浪费了空间?采用第二种设计的时候解决了上面的问题,但是,当学生的信息很多的时候,insert方法和update方法就会出现一大堆的参数列表。本人实在不知道该如何权衡,请指教。
v0201010031 - 2007-1-17 10:48:00
用第二种办法,为的不仅是时间或者是什么所谓的内存空间问题,而是面向对象的本意,既然用的是.NET,就要用面向对象
v0201010031 - 2007-1-17 10:50:00
还有,你的这个类里面所有的变量都应该是私有变量,必须,必须使用private 关键字
希罗·尤尔 - 2007-1-17 21:24:00
楼上说的是用第一种方法吧?第二种方法根本没有变量。
在本机上运行的程序可以有很多的资源,时间和内存空间基本上不成问题;但是对于网络程序来说,要顾及很多用户同时访问的情况,没可能随便浪费时间和内存空间的,否则会给服务器带来很大的负担。
© 2000 - 2026 Rising Corp. Ltd.