Assembly回炉再造
前言
从接触c#到现在已经是第三个年头了,OOP(面向对象编程)编程的基本方法算是已经可以使用,但在工作中发现,只是单纯的OOP,还是有很多的问题,程序还是不够精妙,冗余的代码非常多,至此发现,Assembly的回炉有必要进行一下了。
一、Assembly是什么?
网上通用的解释非常多,但很多对应没有使用过的新同学会比较晦涩。这里我就写下我自己对于反射的理解。
Assembly的英文翻译是装配,要知道,我们的程序是有字段+方法(函数)组成,在OOP的开发中程序的组成是一下部分
1.类=字段+方法
2.程序集=类+类
3.项目=程序集+程序集
知道程序的组成,下面我们来理解Assembly。
举个例子:
你的几个同事和你同事开发一个程序,你开发主体,你的同事们开发各个模块,此时,你不就要和他们定调用协议(接口),此时你的接口定义好了,你的同事会按照你定的接口去完成模块的开发,最后,模块开发好会给你的DLL,你同事比较尽职,开发了两套方案的模块,给了你2个DLL,都实现了你的接口。
在学习OOP的初期,我们想动态的在软件中切换两个模块,我们可能会用“简单工厂模式”。
类似于:
switch(“选择模块”)
case:模块1;break;
case:模块2;break
看到这里,我就在想一个问题,要是需求又变了,需要模块3,这时又要改代码,这样就会非常麻烦。
在软件设计的过程中常常会遇到这种问题,为什么说常常会有这些问题呢?因为需求一种在变,软件开发的高境界是,敌变,我不变,“以不变应万变”。
如何用Assembly来应对这种情况呢?
模块接口 object=Assembly.Load(“模块对象”);