Topic: 重读设计模式有感

  Print this page

1.重读设计模式有感 Copy to clipboard
Posted by: jameszhang
Posted on: 2013-06-17 14:11

最近有点时间,所以看了下最紧迫要干的事,查了下竟然是重读设计模式,其实已经不知道看了多少遍,当然每次看都有不同的理解,这次看完怎么有种顿悟的感觉!?这种感觉比以前的要强烈得多。

解决了多个问题,如其中就有:过度使用设计模式,为什么会过度使用?怎么判断是过度使用设计模式?
我总结了下判断过度的标准:我们使用设计模式只有一个初衷,那就是简单方便,如果没有这个前提那就不要使用了,不然就成了脱裤子放屁,多此一举了。但是我们在看模式的时候发现他很麻烦,左继承右引用的,其实它在做一件事就是为了实现OOD里第一条定理OCP(Open-Closed Principle),当然也有为了固定模式应用的设计模式与OCP关系不大的如 Singleton,主要用于:保证一个类仅有一个实例,并提供一个访问它的全局访问点。这些模式应用单一,往往是刚接触就能掌握的,所以也是应用的最好的。那些复杂的模式是为了OCP,OCP为了使你的代码便于维护,所以好的程序,应用了设计模式,就是使得程序在后期便于维护。复杂的模式需要根据业务和系统分析来判断应用那种模式,比较难于驾驭,所以应用不当就会使程序不但没有维护简单,还会使得维护难上加难。
为什么会过度使用?是因为我们在编码时没有考虑OCP,而直接使用模式的结果。具体依据什么过度使用了什么模式,这个我还没完全想通。但是如果我们问自己在使用模式时如果没有跟OCP联系在一起考虑就应该是过度使用模式。
怎么判断是过度使用设计模式?当然是如果考虑OCP,根据Open的原则来使用设计模式就是正确使用了。当然这个使用过程是一个设计过程,就有熟练和不熟练,使用正确和不正确,这个就需要通过实践验证了。

这就是我最近读书的一点体会,希望先觉者拍砖,呵呵

2.Re:重读设计模式有感 [Re: jameszhang] Copy to clipboard
Posted by: jameszhang
Posted on: 2013-06-24 09:17

今天看了一本pdf书关于UML2.0的,某个网站的总结,看到开始便看不下去了,文中说:是不是一定要先画类图再画序列图呢?是不是我们丰富完成了部分细节之前一定要搭建好整个系统的架构呢?答案是:绝对不是! 每一个人在一小步的细节上都是做得比较好,并且能够很好地评估它,但是无法实现一次大的跳跃。我们渴望建立非常有用的 UML 图,因此我们将在每一小步创建好它们。.....我喜欢先处理行为,我想 UML 将帮助我彻底地解决上述问题,我将先开始画一个有关问题的简单序列图。
这个和我所认识的UML真不太一样,没有按照OOA方式来做能画好UML?用什么来控制你画的这个图的边界?序列图中对象是怎么来的?...这个书不敢再看了...

3.Re:重读设计模式有感 [Re: jameszhang] Copy to clipboard
Posted by: ditty
Posted on: 2013-06-25 13:15

这种方式类似可行性研究,把整个系统预计存在的几个课题,先用序列图来证明其可行性。最后再对这些课题进行整理,抽象,形成比较完整的UML,整理出来便于后期改进和维护,也有不整理或者糊弄了事的,看成本,看作风。

老张,你接着看下去,看是不是这么回事啊?!呵呵。

4.Re:重读设计模式有感 [Re: jameszhang] Copy to clipboard
Posted by: jameszhang
Posted on: 2013-06-25 16:25

老虎,对你说的这种方式,我是这么想的,如果两个程序员讨论一个问题或是一个程序员自己对一个问题考虑的时候,他是可以想到哪里画到哪里,这种方式我也赞同,但是如果对于一个大的系统的建模过程我认为是不可能这么做的,必须按部就班的进行OOA分析,先确项目边界找到应该有的对象和类,在分析他们的关系等等一直到设计,这个过程还是迭代的,后期的修改还要对前面对象和类进行属性和方法的补充。如这本书作者这样认为类和对象不必进行先分析直接到序列图,其实序列图里已经有对象了,但都在他的脑子里,并没有规范的落地,对后期迭代和分析都会有问题,系统小可以,但是如果对象很多,自己也会记不住,随着分析设计的展开,问题也会成堆的出现。

其实最关键的是这本书名字是 《UML2.0设计手册》这样的书应该先把规范的分析设计先给出来,然后再分析哪里可以简约,哪里应该活用,但是.....

这些是我当时看到书的想法....哈哈....老虎我对后边没有太多信心,换本看看你看行不?....

5.Re:重读设计模式有感 [Re: jameszhang] Copy to clipboard
Posted by: jameszhang
Posted on: 2013-07-02 08:58

重看一本书介绍软件分析设计,书中介绍结构化开发方法与面向对象开发方法关系,让我很有感慨,书以前也看过,但是现在看来感觉作者介绍这个很有用,这两种方式在现实的项目中有时候交织在一起,让我很困惑,看到这我明白了一点点,这对以后我处理这两种方法时能更好的应对。
这可能是我的缺点一本书需要看几遍,或许在某个时间的阅读中就能理解了作者的意图,阅读很快乐,但很笨,呵呵

6.Re:重读设计模式有感 [Re: jameszhang] Copy to clipboard
Posted by: 九佰
Posted on: 2013-10-16 18:27

有空随便翻翻的读书感悟必须要的时候查书好很多。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2018 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号
客服电话 0592-8750026    客服信箱 714923@qq.com    客服QQ 714923