您的位置:首页 > 运维架构 > 网站架构

项目手记 (一) 重构机房收费系统--关于架构的第一次认识

2013-05-09 20:54 399 查看

前言

      从4月15号开始到现在,机房收费系统的图和文档基本完成,开始进入编码阶段。稀里糊涂的看完了.net视频,除了

依然记得他那略显枯燥的开场白:“大家好,我是台湾微软讲师曹祖圣。”剩下的可能是那到处布满繁体字的截图了。

带着对VB.net的疑惑,我开始了三层的学习,开始了机房收费系统的重构之路。个中各钟纠结,纠结后的洒脱。现与大

家分享。

纠结并坚持

    
   在学习三层的时候,就开始没有任何来自老师的资料,需要自己去找资料。这时候就需要自己在繁纷复杂的资料

中找到你所需要的资料了。找到一些关于MVC的资料并好好的总结一番,原来发现我们的学的是三层架构。而三层架

构与MVC并不是一样的。

   敲完了三层的登录例子,就开始机房收费系统的重构了。这次重构,开始的想法是首先文档、UML图、然后才开始

编码。这次画图也开始熟悉EA的使用,画到包图的时候,需要加设计模式。这时候三层还没有怎么熟悉,又给我来这

个设计模式,这时候对这个是没有概念的。熊哥说先敲登录的例子,找找感觉,然后再逐步的加入设计模式。登录的

例子敲完,开始对三层有了一点体会。其实就是将一个登录的过程分为三层,一步步分解开。

        实体层:相当于人体的血液在三层之间流动,来传输数据。
        U层:主要是用于与用户交互。
        B层:主要对系统一些逻辑判断进行处理。
        D层:主要针对数据库进行操作。

在加入设计模式的时候,需要对首先对设计模式中一些有特点的模式进行了解。需要回头看看大话设计模式。开始要

加入设计模式,没有一点头绪,也很是着急。但是着急是没有用的,只有去做,去实践才是硬道理。慢慢的看书,一

点点去了解这些模式的思想和用法。才慢慢形成下面这张图:



如图与之前的三层比较,在U层和B层之间加入了外观层。在B层与D层之间加入了D层的接口层IDAL。还加入了抽象工

厂。
 
Facade层:先来了解外观模式(为子系统的一组接口提供一个一致的界面,它定义了一个高层接口,使得子系统更加

容易的使用)结合外观模式的定义我们来思考一下登录这个功能。在登录的时候我们不仅仅要实现登录,还需要插入

登录的日志。这时候如果用三层,就需要调用两个业务逻辑类。用Facade的话,我们可以在Facade新建一个类,用它

来封装两个业务逻辑。这样U层就可以更简洁的调用相应的函数来实现登录的功能。不仅仅是这样,试想在后期维护

的过程中。面对众多复杂的业务逻辑,更改一个类可能引起更多的错误。这时候使用Facade层就可以很好的避开。我

不管你是怎么实现的,我新建一个层,我只负责调用这样也符合“开闭原则”。其实如果没有很复杂的逻辑,可以

Factory:利用Factory可以使用反射和配置文件来实现动态实例化接口和更改数据库。反射实现动态实例化接口,在

反射中,由于我们使用的是字符串来实例化一个对象,结合配置文件就可以很好的解决这个问题。但是需要注意的是

需要实例化的类的命名空间一定要写对,像我弄错了命名空间结果又花了很长时间来学习解决这个问题。

IDAL层:D层实现IDAL的接口,减少B层与D层之间的耦合。

    这段时间里,在遇到问题的时候总是很着急。一着急就容易烦躁,烦躁就更不能来工作。所以这段时间内,真的

需要静下来心来好好思考问题。还有就是处理的问题的时候,一定要分步来处理问题。不能同时处理几个问题,这样

一来这个问题你没有弄懂就接着这个。问题越来越多,并且没有得到解决。你就会得到无数的挫败感,也就没有信心

走下去了。还有就是在遇到困难的时候,坚持下来。

   这是一个纠结的过程,更是一个成长的过程。用一句老话:坚持就是胜利。

   前方即将是黎明,只要你迈出地平线的那一步。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: