首页新闻找找看学习计划

petshop 4.0 中 BLL项目 中 接口的使用

0
悬赏园豆:100 [已关闭问题]

 public class Order {

...

private static readonly PetShop.IBLLStrategy.IOrderStrategy orderInsertStrategy = LoadInsertStrategy();

...

 private static PetShop.IBLLStrategy.IOrderStrategy LoadInsertStrategy() {

 

            // Look up which strategy to use from config file

            string path = ConfigurationManager.AppSettings["OrderStrategyAssembly"];

            string className = ConfigurationManager.AppSettings["OrderStrategyClass"];

 

            // Using the evidence given in the config file load the appropriate assembly and class

            return (PetShop.IBLLStrategy.IOrderStrategy)Assembly.Load(path).CreateInstance(className);

}

小破孩^_^的主页 小破孩^_^ | 初学一级 | 园豆:100
提问于:2009-11-07 18:54
< >
分享
其他回答(5)
0

这是想问什么?

yibin | 园豆:17 (初学一级) | 2009-11-07 21:28
0

使用接口的意义就在于, 使用方(或者说客户类)依赖于抽象而不是某个具体的类,这样的代码就会比较稳定,不会因为处理订单的逻辑有变化,增加一个新的类了,就需要修改调用方的代码。

举个例子 ,假如使用的是某个具体类,那么客户类(客户类有可能是很多个,不止一个)的代码是这样子的:

private static readonly OrderStrategy orderStategy = LoadInsertStrategy();

这时,由于业务的需要,不得不增加了一个OrderStrategy2,那么涉及到这次修改的一部分客户类,就需要修改代码:

private static readonly OrderStrategy2 orderStategy = LoadInsertStrategy();

实际上,用接口的话,客户类就不需要做修改了,因为可以动态地决定使用哪个策略类来实现需要的逻辑。

另外,这个也是GOF中的策略模式。

说了一堆,不知道你想问的是这个吗?

Cheese | 园豆:509 (小虾三级) | 2009-11-07 23:25
0

问题是什么?什么是接口?

JieNet | 园豆:0 (初学一级) | 2009-11-08 12:49
0

这不会是分享吧?

canbeing | 园豆:1287 (小虾三级) | 2009-11-08 23:04
0

使用多态,

这样可以有不同数据库的数据访问层,

他们都继承接口,

可以使用反射技术来决定使用哪个数据访问层,

也就决定使用了,哪种数据库~~~

Mr雨 | 园豆:1199 (小虾三级) | 2009-11-09 09:38
0

反射!面向接口变成中经常用到东西,返回一个接口实现类的对象。

邢少 | 园豆:10922 (专家六级) | 2009-11-11 11:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册