早上起来也不算早,感觉还是挺晚的,哎!这么下去,这个项目不知道怎么时候会完呢?就拿今天来说,写了一个类一个接口,一天就这样过去了.看来又要延迟计划了.不过,虽然今天只做了一点的事,但主要是学到了东西.下面我对自己的今天事总结一下.
有时候不知道是为什么,一段代码明明正确的敲了N次,还是不正确,这时候真是不知道怎么办,真想打自己两个耳光.
今天在用三层架构一个项目,在数据层建一个Article的类,当然还有对应一个接口IArticle,在类里面都实现了接口的方法,然后再建 一个DALFactory的工厂类, 用以生产接口.只要在逻辑层建一个GArticle的类进行一些操作,就可以返回想要的结果,虽然只有几行的代码,可是我用了一天,也想不明白.最后虽然可以用了,却还是不知道之所以然.下面我贴出代码,希望有知道的人告知一下.
下面是Article类:
下面是IArticle接口:
下面是DALFactory类:
下面是逻辑层GAticle类:
现在上面这个逻辑层的代码是正确的,可为什么这改成下面这样就不行了?
我是在VS2005环境下编写的,真是搞不明白,为什么这些一定要写在方法里面.虽然不弄明白,不过还是有点收获,以后懂得把所有东西放在方法或属性里,今天就是没有写那个方法,调试了一天,没弄明白.现在可以是可以了,可就是弄不明白里面的奥秘.希望有人告知,也希望给有遇到这种情况的人一些帮助,呵呵.可能是帮不了,因为我这么菜.
有时候不知道是为什么,一段代码明明正确的敲了N次,还是不正确,这时候真是不知道怎么办,真想打自己两个耳光.
今天在用三层架构一个项目,在数据层建一个Article的类,当然还有对应一个接口IArticle,在类里面都实现了接口的方法,然后再建 一个DALFactory的工厂类, 用以生产接口.只要在逻辑层建一个GArticle的类进行一些操作,就可以返回想要的结果,虽然只有几行的代码,可是我用了一天,也想不明白.最后虽然可以用了,却还是不知道之所以然.下面我贴出代码,希望有知道的人告知一下.
下面是Article类:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
下面是IArticle接口:
![](https://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using System.Data;
5![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
namespace DataAccess
7
{
8
//这个是工厂,生产各种对象.
9
public class DALFactory
10
{
11
12
//可生产一个各类文章信息的对象这个对象里可细分为各种类的文章.
13
public static IArticle GetArticle()
14
{
15
IArticle article =(IArticle) new Article();
16
return article;
17
}
18![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
}
20
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
下面是逻辑层GAticle类:
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using DataAccess;
5
using System.Data.SqlClient;
6![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
namespace Bussiness
8
{
9
10
public class GArticle
11
{
12
public void LoadArticle()
13
{
14
Article mavinAnswer = DALFactory.GetArticle();
15
int asId = 1;
16
mavinAnswer.GetA();
17
mavinAnswer.GetA(asId);
18
}
19
20
}
21
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
现在上面这个逻辑层的代码是正确的,可为什么这改成下面这样就不行了?
1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
using DataAccess;
5
using System.Data.SqlClient;
6![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
namespace Bussiness
8
{
9
10
public class GArticle
11
{
12
13
Article mavinAnswer = DALFactory.GetArticle();
14
int asId = 1;
15
mavinAnswer.GetA();
16
mavinAnswer.GetA(asId);
17
18
19
}
20
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
我是在VS2005环境下编写的,真是搞不明白,为什么这些一定要写在方法里面.虽然不弄明白,不过还是有点收获,以后懂得把所有东西放在方法或属性里,今天就是没有写那个方法,调试了一天,没弄明白.现在可以是可以了,可就是弄不明白里面的奥秘.希望有人告知,也希望给有遇到这种情况的人一些帮助,呵呵.可能是帮不了,因为我这么菜.