我想要一个架构让我的UI与数据库进行交互,而无需为UI编写多余的代码......即。背后的代码......
答案 0 :(得分:3)
使用业务对象/用户界面/业务逻辑/数据访问架构。
BO------UI
| |
--------BL
| |
--------DA
答案 1 :(得分:2)
一个起点是定义一些简单的经验法则。一个好的经验法则是在Form类中使用尽可能少的代码。 Form类中的所有代码都应该是基本的UI映射。
我个人喜欢使用DAO pattern来组织我的数据库访问逻辑。这种模式巧妙地封装了代码访问和访问。存储数据,因此可以轻松切换和更改。根据数据库的复杂程度,我通常每个表有1个DAO,但对于简单的数据库,每个数据库甚至可能只有1个DAO。
MVC也是一种分离演示和其他逻辑的流行方式,但对于一个简单的项目可能有点过分。 Use cases也是一种封装逻辑并将其从表单中分离出来的好方法。
基本框架的外观示例,请参见下文(注意:不完整!阅读完整的DAO文章以正确实现它)。这段代码的目的是为了表明Form
类中没有数据库逻辑,当单击按钮(或者其他什么)将UI映射到动作时,它是一个简单的单线程。如果您决定从数据库存储交换到文件存储,那么编写FileMyDAO : IMyDAO
类并让工厂返回此类并不困难。请注意,如果您这样做,UI代码都不会改变!
public interface IMyDAO
{
void InsertData(int data);
}
public class SqlMyDAO : IMyDAO
{
public void InsertData(int data) { throw new NotImplementedException(); }
}
public class DAOFactory
{
public static IMyDAO GetMyDAO() { return new SqlMyDAO(); }
}
public class MyForm : Form
{
private void Button_Click(object sender, EventArgs e)
{
DAOFactory.GetMyDAO().InsertData(123);
}
}
答案 2 :(得分:1)
Data Binding是你应该研究的东西。这将引导您进行更多的学习,但您一定会了解您需要的人员。
答案 3 :(得分:0)
伙计你可以使用原始架构:
BusinessObjects Layer BusinessLogicLayer 数据访问层 UILayer
答案 4 :(得分:0)