zoukankan      html  css  js  c++  java
  • 架构(三层架构)、框架(MVC)、设计模式三者异同点

    前言:

              本博客主要针对架构、框架和设计模式三者的差别、还有三层和MVC的差别进行讨论、对于这三者一点都不了解的、请点在维基和百度百科上补补课、这里就不发链接了


    软件架构(software architecture)


              软件的架构是系统的一个草图、阐述了各个组件之间的通讯、划分层次、一旦系统開始具体设计、架构蓝图就非常难甚至无法更改、是由软件架构师从无到有设计出来的。


             例: 三层架构:一种设计软件架构的思想

                             把软件上从逻辑上分为、表示层(UI)业务逻辑层(BLL)数据訪问层(DAL)

                            目的:低耦合、高内聚、各司其职、达到易更换、改动、能够分散部署、编码。


    三层架构具体解释:http://blog.csdn.net/u010191034/article/details/24588675


    软件框架(Softwareframework)


              软件框架是在一定领域内、别人已经对这个领域制作软件所需的基础架构功能、进行了总结、做出了有代码实体的软件框架结构、假设要制作这一领域的软件、能够在别人写好的框架上、继续设计、编写自己的软件、骨头架上填肉、框架有一定的局限性。


    例:MVC(框架)


             英文Model View Controller、是针对Web开发、已经写好有代码的框架、分别为M模型(model)-V视图(view)-C控制器(controller)三部分


              目的:模型和视图分离开、使得一个模型可被多个视图使用、简单说就是相同的一个站点、用手机的视图(界面)和电脑的视图、能够共用一个模型。


    设计模式(Design pattern)

              对软件设计中普遍存在(重复出现)的各种问题,所提出的解决方式、是一种解决方式的思想、不拘泥于代码、通常以类型或对象来描写叙述当中的关系和相互作用、依赖与抽象、来达到解耦和、可宽展、易维护等、设计模式是用来解决这个问题的。


    三者差别

              软件架构是指软件架构师在制作软件的时候、对软件规划的一种蓝图、通常是分层、画出各个组件的关系。

              软件框架是指在特定的领域内、已经有人写好的框架(有代码)、框架有局限性、仅仅限特定领域。

              设计模式是指针对一些编程实际的问题所提出的抽象解决方式、用类与类之间的关系相互作用、达到目的。

    三层架构与MVC的差别

              根本差别是三成是机构而MVC是框架、MVC是应用与Web别人已经写好的代码、如ASP.NET就能够直接点击MVC、会自己主动生成框架代码、而三层是做软件自己划分的、是一种制作软件的思想。


    有图有真相、以下是ASP.NET的建项目

                 

                 

    他俩的共同点就是都分成了三个、折让人们非常easy误解

              并且三层的UI层与MVC的M和C、功能非常像

              而MVC的V和BLL和DLL、功能非常像

              如图


              尽管相似、可是从根本上就不是一个东西呦!由于架构是一种做软件的思想、而框架是人们已经对特定领域软件的共同特性、所编写好的代码成品。


    所以

              软件架构>软件框架>设计模式

              当然从解耦和的观点来看、这三个都是以解耦为目的、也是面向对象、做出更好的程序、所以什么一样不一样的、是看在哪个层面看


    如:

    你买了两个iPhone6手机是一样吗?

              从型号来看、都是苹果6手机、是一样的

              从安装软件上比可能就不一样了


               所以、有人说MVC和三成架构是一个东西、没错、都是为了解耦和、有人说MVC和三层架构不是一个东西、也对、MVC有实际的框架代码、三层架构是做软件的一种思想、就好像设计模式一样、三层是做软件的思想、设计模式是解决这个问题的思想。


               正所谓:横看成岭側成峰、远近高低各不同、事事无绝对、多学多理解、今天写的挺浓缩的、希望能帮到大家、也希望大家看到也能多给我提提建议、谢谢!



    ———————————————想跟503说再见……———————————————

    ——————————————chenchen———————————————






  • 相关阅读:
    直接选择排序(C++模版技术实现)
    求素数
    快速排序(C++模版技术实现)
    堆排序(C++模版技术实现)
    简单链式二叉树(C++模版技术实现)
    归并排序(C++模版技术实现)
    求斐波那契数列的两种解法
    C++中改变setw(n)的对齐方式
    C中的64位整型
    Windows版GCC之TDMGCC 4.5.2
  • 原文地址:https://www.cnblogs.com/gcczhongduan/p/4362105.html
Copyright © 2011-2022 走看看