要使用什么类型的类
本文关键字:类型 什么 | 更新日期: 2023-09-27 18:21:51
我对类和其他东西不太熟悉,所以我在这里寻求一些简单的帮助。。我有很多数据库函数,我经常使用这些函数,所以我想我应该把它们放在一个类中,我可以从其他需要数据库数据的类中调用它。
例如,我有一个输出人员列表的窗口,我在编辑人员窗口中有相同的代码,我为他们两个重复相同的代码。
我使用什么类?我很困惑。我已经将它实现为一个静态类,但我不确定它是否正常工作。
如果有人能简单介绍一下什么课程,我将不胜感激
感谢
静态类基本上是一个经过修饰的全局变量。您不创建静态类的实例。所有方法都必须是静态的,如果它保留任何数据,则数据字段必须是静态。这意味着所有使用此类的代码都将使用相同的数据。
如果您的意图是集中数据库访问的痛点,比如登录和会话,那么静态类可能是合适的。请始终记住,来自不同客户端的调用将从静态类中看到相同的详细信息。
非静态类或实例是在每个实例中存储不同数据的东西。必须先创建该类的对象实例,然后才能对其执行任何操作。创建对象的好处是,每个构造自己实例的使用者都与该类的任何其他使用者隔离。如果窗口A构造了您的db类的实例并执行操作abc,而窗口B构造了自己的db类实例并执行了操作xyz,则abc和xyz将不会交叉路径-它们之间不会共享任何数据。
通常,对象实例通常比全局/静态类更受欢迎,因为静态类的共享性质会产生数据依赖性和副作用,而消费者可能没有意识到。
您可以创建这样的类-
public class DBOperator
{
//Only static methods, so no public constructor
private DBOperator()
{
}
// static constructor
static DBOperator()
{
// do initialization stuff
}
// have static functions to operate on your database
public static int ExecuteNonQuery(string storedProc, params object[] parameters)
{}
}
您可以将重复的代码放入一个方法中,并从多个方法中调用该方法。
关于DB类,您可以将所有的DB代码放在一个类中——创建它的实例并从其他类中调用它。
然而,如果你开始"搞砸"DB相关的所有内容,DB类可能会变得一团糟。
阅读OO,寻找一种更有效的方法来设计你的程序。