您的位置:知识库 »

小菜编程成长记(十 三层架构,分层开发)

作者: 伍迷  来源: 博客园  发布时间: 2008-09-10 17:34  阅读: 8586 次  推荐: 0   原文链接   [收藏]  
[1] 小菜编程成长记(十 三层架构,分层开发)
[2] 小菜编程成长记(十 三层架构,分层开发)

系列文章导航:

四大发明之活字印刷——面向对象思想的胜利

小菜编程成长记(一 面试受挫——代码无错就是好?)

小菜编程成长记(二 代码规范、重构)

小菜编程成长记(三 复制VS复用)

小菜编程成长记(四 业务的封装)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(五 体会简单工厂模式的美妙)

小菜编程成长记(六 工厂不好用了?)

小菜编程成长记(七 用“策略模式”是一种好策略)

小菜编程成长记(八 反射——程序员的快乐!)

小菜编程成长记(九 会修电脑不会修收音机?——聊设计模式原则)

小菜编程成长记(十 三层架构,分层开发)

小菜编程成长记(十一 无熟人难办事?——聊设计模式迪米特法则)

小菜编程成长记(十二 有了门面,程序员的程序会更加体面!)

小菜编程成长记(十三 设计模式不能戏说!设计模式怎就不能戏说?)


续上篇)

   “大鸟,我们继续讨论吧!”小菜很沮丧的说。
       “小伙子,不会修收音机也是很正常的,没什么大不了的,用不着丧着一个脸。好象失恋一样,男人再强也要学会说‘不’。”大鸟安慰着说,“如果你的目标是要成为修理电器专家,那么你连收音机都不会修,那是很郁闷的事。但你现在的目标是什么?”
  “我想成为软件架构师,编程专家。”小菜毫不含糊的说。

  “就是,你的人生目标很明确,别的方面弱一些有什么关系呢。”大鸟继续说道,“现在电视节目《波士堂》里请来的嘉宾,全是中国的大企业家,许多人身家上亿,节目中都要求他们要有一个Boss秀,难道真的要把他们的才艺去和人家艺术家比吗,我看老板们唱歌虽很业余,但却也感觉得到他们那份认真和情趣——原来亿万富翁也是会唱歌,会跳舞,会食人间烟火的。至于他们歌唱得是不是跑调没有人在意的,明白吗?”
      “我明白!,我一定要好好努力,成为编程专家。”,小菜说,“我们言归正传,你说我那程序用了反射后,还有什么需要修改的呢?”
      “嗯,好!”大鸟清了清嗓子,开始上课,“如果你的程序再也不修改了,或者就是改改打折的额度和返利额度,那么你的代码是足够可以了。不过需求却是会不断产生的。比如说,现在这个程序是单机版的程序,如果需要商场多层楼的所有收银机都要使用,那该怎么办?”
      “那用XML的配置文件就不合适了,应该用数据库会比较好!”
      “那么老板听说了C/S架构的坏处,更新麻烦,不够安全等等,他也不是傻瓜,每次更新都需要针对每台机器部署,一次就半天,那些工作时间他是需要给程序员付薪水的。所以他提出要改为B/S架构,客户端用浏览器支持,你怎么办?”
      “那需要改界面了,把应用程序改成Web程序。”
      “就你现在的代码,改起来容易吗?”
      “好象不容易,需要重新写,尽管可以复制一些代码过去,不过要重新写的东西还是很多的。”
      “好,那你有没有发现,我说了这么多的需求变动,但系统中有一些东西一直没有变,是哪些?”
      “我知道,是策略模式用到的那几个类,也就是正常收费、打折消费、返利消费等算法是没有变化的。”
      “是呀,其实不是算法不会变,而是之前我们已经考虑它很多了,用了策略模式,用了反射技术使得它的变化相对稳定。你刚才也说,要把应用程序改为Web是需要复制粘贴的,可实际上,改改界面和这些算法有什么关系?”
      “没有关系。”     
      “还有,把配置文件改为数据库访问,这其实是读取写入数据的操作,和算法又有什么关系呢?”
      “也没有关系,我知道了,你是说,他们之间完全可以分离开,互不影响,改动其一,不要影响其它两者?哦,这是不是就是所谓的三层架构?”
      “对,说得好,就是三层架构。三层架构或者分层开发说起来容易,在程序开发时的初学者还是有很多的误解。比如有些初学者以为,DBServer-WebServer-Client是三层架构,其实这是物理意思上的三层架构,和程序的三层架构没有什么关系。还有人以为,WinForm界面的窗体或者WebForm的aspx是最上一层,它们对应的代码后置(codebehind)文件Form.cs或aspx.cs是第二层,然后再有一个访问数据库的代码,比如ado.cs或SqlHelper.cs是最下一层,这其实也是非常错误的理解。再有,很多人认为MVC模式(Model-View-Controler)就是三层架构,这是比较经典的错误理解了。总之,尽管三层架构不算难,不过由于现在很多数书籍材料的讲解不透,所以让我们初学者都概念模糊,理解有误,非常的可惜的。”
      “啊,我一直以为MVC就是三层架构呀,看来真的弄错了。那么三层具体是什么呢?”
      “我不是已经告诉你了吗?你说说看,不管是应用程序WinForm,还是网页程序Aspx,它们主要用来干吗的?”
      “用来界面显示和处理的,对的,它们可以看作是一层。叫界面层?”
      “界面层这种叫法可以,或者叫UI层、表现层都可以。”
      “访问配置文件或处理数据库是不是就是数据层了?”
      “哈,三层架构是不是不难理解呀!说得很对,不过名称应该叫做数据访问层(Data Access Layer)或简称DAL层。”
      “那么第三个层就是那些算法类了,这叫什么层呢?”
      “这些算法是谁制定的?由谁来决定其变化?”
      “当然是需求提出者,即软件系统所有者制定的,他们要改算法,我们开发就得改。这都是他们的业务算法呀!”
      “哈,好,你说到了一个词,业务(Business)或叫商务,这其实是软件的核心,我们就是根据业务规则来开发软件提供服务的,所以这个层叫做业务逻辑层(Business Logic Layer)。不过它应该是中间的一层,介于另两者之间。”
      “哦,所谓的三层开发,就是关于表现层、业务逻辑层和数据访问层的开发。那么他们之间的关系呢?”
      “你需要知道,这其实只是大方向的分层,每个层中都有可能再细分为多个层次和结构。比如PetShop4,这是微软用它来展示.Net企业系统开发的能力的范例,PetShop尽管作为对大型软件系统开发的样例还是不够,但可以理解为儿童的智力玩具。不过对于初学编程的小菜你来说,玩具却是最好的学习道具。”

[第1页][第2页]
0
0

热门文章

    最新文章

      最新新闻

        热门新闻