我有一些 c# 代码已经运行了一段时间了.. 我不得不说,虽然我了解 OO 原则的基础知识,但显然有不止一种方法可以给猫剥皮(尽管我讨厌这个词!) .
因此,我有一个基本抽象类,它充当基本数据服务类,如下所示(为了便于阅读而进行了很多简化):
public abstract class dataservice
{
public enum OutputType : int { XmlTOJson = 0, Xml = 1, Json=2 }
protected object SomeDBcall(string StoredProcedure)
{
// Just assume we are using SQLclient/DB access..
object SomeReturnObjValue = db.ExecuteScalar(cmd);
return SomeReturnObjValue;
{
}
..所以基本上我可能在抽象类中有一些基本的数据库检索/更新/删除调用..主要是因为我的应用程序中有任何数据库操作的基础。
所以现在我们有一个实现基类的类,在我的例子中是一个客户类:
public class Customer : dataservice
{
Public String CustomerDoSomething(string SomeDataEtc)
{
// Ok, so again for simplicity sake, we are going to use the base class to
// call a DB retrieve
object ReturningObj = SomeDBcall("my stored procedure");
return ReturningObj.ToString();
}
}
所以我想我的问题是:上述方法“可以”使用吗?考虑到如果需要可以覆盖虚拟方法,但是在这种情况下,我只希望基类使用那些受保护的方法作为调用 DB 操作的方法。
非常感谢任何清晰/指导!