1
interface IDbInteraction
{
    int GetValueAsInt(string sql);
}

class SQLDbInteraction : IDbInteraction
{
    private string _connStr;

    public SQLDbInteraction (string connStr)
    {
         _connStr = connStr;
    }

    public int GetValueAsInt(string sql)
    {
        int value;

            using(SqlConnection conn=new SqlConnection(_connStr))
            {
                SqlCommand command = new SqlCommand(sql, conn);
                conn.Open();
                value = Convert.ToInt32(command.ExecuteScalar());

            }


        return value;
    }
}

interface这是一个关于如何在需要访问 SQL Server 数据库时进行编程的简单示例。

它被提供给我作为替换我在问题中提出的旧代码的建议。

所以......,因为我是新的开发人员和interface概念/方法/方法的新手,并且因为我并没有真正连接到这个术语,Repository所以我重命名了......

您能否举一个关于如何使用这两个:class &interface以上的广泛示例?

如果你可以请提供替代IRepository(原名)

你会用什么来代替它(如果你不介意的话)?

作为这篇文章的重点,是关于从obsolete我使用的不安全和有点技术的转变,现在在尝试转向“下一代”编码方法时,

我可以在此示例代码上使用您的帮助来学习用法。

更新

我现在所做的是研究网络..仍然,我有这个问题:

是调用/调用的方式 GetValueAsInt("select aColumn ...")

现在......当interface添加到“方程”时,

就调用行为而言,它是否改变了任何东西?

你还GetValueAsInt()像现在一样打电话吗?

是不是真的以这种方式并没有真正改变..至于实际使用情况

你现在打电话吗

IDbInteraction.GetValueAsInt("select aColumn from...")

或者

SQLDbInteraction.GetValueAsInt("select aColumn from...")

或者现在可以同时调用两种方式?

4

2 回答 2

1

基于接口的编程基本上用于定义一个类在使用时必须遵守的契约。由于您不熟悉这种术语,我会阅读面向对象编程和设计模式,在那里您将了解存储库模式.. IRepository 只是一个接口名称,您可以随意命名接口。存储库是一种设计模式,在业务逻辑中非常常用到数据访问层。我不确定我是否会将此代码定义为不安全和过时的,但您可能决定使用设计模式和面向对象技术来实现此逻辑。

于 2012-12-08T19:45:26.023 回答
1

好的,因为我期待一个答案......虽然仍在搜索,但我得出了结论

这就是我要实施的

(说应用的主题是颜色)

IDbInteraction colorsData = new SQLDbInteraction("server=(local);Initial Catalog=...");
int colorId= colorsData.GetValueAsInt("SELECT colorId FROM colors WHERE name='jade'"));

因为我将继续寻找正确的答案。如果您在我的实施中发现有问题,请发布您的答案,如果它是正确的,可以请大家投票或其他什么吗?

于 2012-12-08T23:13:39.983 回答