刚学这些知识的时候,也了解三层架构和MVC是不一样的东西,但是具体不一样在哪,却不懂得.
以为M,V,C也是分成3层嘛,那和三层架构到底有什么区别呢?还有工厂模式,和MVC,和三层架构,又有什么关系?
以下为个人见解,一定也存在着错误的地方,希望大家帮忙指正和教导.
首先是MVC和三层架构
从书及网络上得到的信息,大概整理出这么点东西,MVC和三层架构同样是架构级别的(这边也有说MVC是属于设计模式的).而我认为把其当成是设计模式会好理解点.
相同的地方,在于他们都有一个表示层,不同的地方,在于MVC的C(Controller)上.三层不存在C这个东西,而MVC也没有把业务的逻辑访问看成是2个层.
那么,我这样理解,就是MVC可以当成是三层中UI层展示的一种实现.
工厂模式与三层架构
工厂模式则是属于一种设计模式,指的是专门定义一个类来负责创建其他类的实例,属于类的创建型模式,通常根据一个条件(参数)来返回不同的类的实例。
以下是转自别人的观点,留待细看
设计模式也是分类的
三层模式是体系结构模式,MVC是设计模式
三层模式又可归于部署模式,MVC可归于表示模式,工厂模式可归于分布式系统模式。
三层模式跟工厂模式,个人的见解如下:
工厂当然是得建立在三层的基础上的
三层,简单的说,数据访问,业务逻辑,表示,3个层面,3层会在一定程度上降低效率
但是他的优点远远的大于了那一点点的缺点,代码易于维护,程序结构清晰,关键是松散耦合
工厂呢,就是
例如,如果我要个对象,就会让工厂去创建,创建完成,给你返回个结果。
假如你去吃麦当劳,你说要个汉堡,你不会自己去做吧,相当于,你跟服务员说,我要个汉堡,服务员跟后面的“工厂”说,然后工厂帮你做个汉堡,然后“工厂”会给你个结果
三层架构,数据层(DAL)、逻辑层(BLL)、表示层(UI);
从功能上来说:
表示层就象你去饭店吃饭,你点了一个清真鲈鱼。
业务层负责洗、切、蒸等。
数据层负责提供鱼、油、盐等。
确切的说现在应用一般为7层结构
---DBUtility数据层基类
---DALFactory数据层工厂类
---IDAL接口层
---SQLDAL接口实现层
---Model实体类
---Logic业务逻辑层
---Web表示层