1、复杂项目不能把SQL语句直接写到程序里,不模块化、难以维护,应该采用三层架构。通过后面学习再去理解三层架构的优点,现在先吸收,再理解。当然不是所有公司都这么做,还是看公司习惯。Web开发中的三层架构也是同样的结构。
2、模型层Model;数据访问层DAL(Data Access Layer);业务逻辑层BLL(business logic layer )。实体类就是Model;对数据进行操作的代码写在DAL中,一般就是SQL语句,DAL只有对数据的操作,没有“如果金额大于20则不能删除”这样的逻辑;BLL调用DAL中的代码进行逻辑操作,比如“如果金额大于20则不能删除”。SQL语句一般只应该出现在DAL中。
3、三层:UI(界面,User Interface)、BLL、DAL。Model是在三层之间进行数据传递的。UI层调用BLL、BLL调用DAL,数据用Model传递,UI不能直接调用DAL。
4、用定做蛋糕来比喻,蛋糕的规格、文字就是Model,蛋糕师是DAL,BLL是售货员,UI是用户。
5、BLL、DAL中的方法一般不声明为静态的,为以后DALFactory提供扩展。
6、三层的优点:UI层和BLL打交道,不用处理SQL语句;UI层(界面代码,就是写到Form中的代码)访问的都是强类型的对象,而不是row["age"]这样的东西,开发更方便,更不容易出错。一般三层的代码都是一个人写;UI层中没有复杂的代码,解耦,容易改变UI层技术。
7、DataTable、DataRow只应该在DAL中出现,DAL返回的应该是Model。不要在BLL中MessageBox,因为MessageBox是UI层的东西。