gpt4 book ai didi

正确的面向对象技术的 c# 实践

转载 作者:行者123 更新时间:2023-11-30 15:38:58 27 4
gpt4 key购买 nike

我有一些 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();
}
}

所以我想我的问题是:上述方法“可以”使用吗?考虑到如果需要可以覆盖虚拟方法,但是在这种情况下,我只希望基类使用那些 protected 方法作为调用数据库操作的方法。

非常感谢任何清晰度/指导!

最佳答案

当然,它是“好的”,尽管我认为没有理由让基类成为抽象abstract 类非常适合实现一些通用逻辑,而将其余逻辑留给派生类来实现。但是,您没有抽象/虚拟方法,所以我不明白这里的意义。

关于正确的面向对象技术的 c# 实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10934419/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com