嘿,我一直在用C++编程一个学期的OOP,我刚刚启动C#。我仍然不完全明白如何将图层彼此分开以及什么在哪里。从我的理解有这层:面向对象层
存储 - >数据访问 - >业务逻辑 - >命令处理器 - >用户界面
现在我似乎无法了解每个层的责任到底是什么..
我明白数据访问只包含像添加,更新,删除,查询和方法,数据访问不关心它插入它只是接收对象作为参数,并做任何事情。业务逻辑是否从命令处理器发送的数据创建对象,命令处理器从用户界面获取数据并对其进行输入验证?
而且怎么会有我发送和收到不同的命令,如查询命令怎么会不是一个插入命令太大的不同,因为它需要将数据发送回..
正如你可能会告诉我相当迷茫,我一直很难找到关于这个主题的好教程。
谢谢!
编辑。
我试图从数据访问层查询方法开始。我有三个子对象存储在父类型的通用列表中。
我有不同的查询选项,其中之一是类型。所以我需要搜索父列表并返回每个对象的数据,如果它的类型指定的话。 我的父对象有一个覆盖的ToString()以及我的孩子,它们调用父母的ToString()将对象的所有数据都转换为一个字符串。我在这里做商业逻辑职责?另外当我得到匹配我的类型的对象的列表,并尝试迭代抛出一个调用ToString()的foreach它只会调用父ToString()我猜?
public string Lookup(Types type)
{
List<Parents> search = new List<Parent>();
switch (type)
{
case Types.TypeOne:
{
search = ParentDataBase.FindAll(delegate(Child1 findChild) {
return findChild is ChildOne; });
}
break;
case Types.TypeTwo:
{
search = ParentDataBase.FindAll(delegate(Parents findChild) {
return findChild is ChildTwo; });
}
break;
case Types.TypeThree:
{
search = ParentDataBase.FindAll(delegate(Parent findChild) {
return findChild is ChildThree; });
}
break;
}
string results = "";
foreach (Parent x in search)
{
results += t.ToString();
}
return results;
}
开始用MVC?那么无论什么是有意义的,取决于你的项目你可以创建图层避免多余的图层。用你的直觉。 – DarthVader
编写一些垃圾代码,请求某人有经验来改变需求并查看需要将问题抽出的地方。这更多的是一个学习过程,而不是让它第一次工作。 – nhahtdh