现在的位置: 首页 > 综合 > 正文

vb.net 中通过反射实现简单工厂模式

2012年12月31日 ⁄ 综合 ⁄ 共 3390字 ⁄ 字号 评论关闭

 

     前天看了一个设计模式视频,是用Java实现简单工厂模式,要是用if……else来判断的话,改到.net下也是很好实现的,但是在Java里面用到了反射的机制,这样就省去了工厂内部或是客户端内对要生产东西的判断。直接根据传进来的参数既可以完成生产。下面我给出我做的例子,先给出一般的通过if ……else来判断的:

 

 

    这样就可以通过if判断来生产不同的汽车。但是如果要在添加新的汽车类呢?比如说要添加一个Bus类,就必须得改动Factory类。这在设计模式上是不合理的,因为“对修改封闭-对扩充开放”

那么在vb.net中如何使用反射机制呢?

下面给出我的例子:

首先是建立一个类库命名为SimpleCar,代码如下:

 

 

 

 

 

 

然后生成解决方案。

新建一个控制台程序:

 

 

 

    这样就可以不用if……else来判断就可以生成相应的类了。

但是这个并没有解决我的疑问,因为在Java中可以通过制定相应的包和类就可达到反射的效果,但是在vb.net中还得生成dll才行。我想应该还有别的方法,要不修改dll文件也不是容易的事。不过相对来说比if……else更为灵活一些。

下面是Java的简单工厂代码:

 

 

 

 

抱歉!评论已关闭.