Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Design Pattern & UML  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 Re:本人学java不久,想学以下设计模式,不知从何入手 [Re:holly2k]
rogertu





发贴: 3
积分: 0
于 2008-06-04 23:52 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
部分引自我的blog:http://www.blogjava.net/RogerTwain/archive/2007/03/23/105678.html

本质上说,如果说一个软件的需求是永不变更或发展的,该软件也就不需要任何设计,怎么编码实现都行,只要需求满足,性能达标。但事实上,软件的本性就是不断增强,不断扩展,不断变化的。我们可以控制指尖流淌出的每行代码,但控制不了奉为上帝的用户的需求。编码结束,测试通过,用户在使用过程中才发现原来的需求有问题,要变更需要或提出新需求,怎么办?向用户抗议:需求总在变,没法做!?平抑心中的抱怨,加班加点大量的修改代码,疯狂的测试,依然是时间紧迫,心中没底?抑或了然于胸:这个变更或新需求合理,系统很方便纳入;于是坦然地和用户协商下一个交付时间点?

好的系统设计追求如下特性:
可扩展性(Extensibility):新的功能或特性很容易加入到系统中来;
灵活性(Flexibility):可以允许代码修改平稳发生,对一处的修改不会波及到很多其他模块;
可插入性(Pluggability):可以很容易地将一个类或组件抽出去,同时将另一个有相同接口的类/接口加入进来。

而设计模式就是综合运用面向对象技术和特性进行好的系统设计的常用方法和经验的提取和汇总。掌握23种设计模式的关键是理解它们的共通目的:使所设计的软件系统在一般或特定(系统将来在特定点上需要扩展的可能性大)场景下,尽可能的对扩展开放,对修改关闭。即面对新需求或需求变更,容易开发独立于既有代码的新代码接入到现有系统或对现有代码做可控的少量修改,而不是在现有代码基础上做大量的增、删、改。为了这一目的,23种设计模式贯穿了面向对象编程的基本原则:面向接口或抽象编程,而不是面向实现编程。

学习设计模式的关键是理解各自的问题域(实际开发中常见问题情景的抽象)以及如何运用OO抽象进行解决。如果你曾有过维护设计不佳但要持续扩展的大型软件项目/模块的痛苦,那么对设计模式的理解将会更深刻Smile实际开发中,经常反思这是一个好的设计吗?怎么会更具可扩展性,灵活性,可插入性?

部分引自我的blog:http://www.blogjava.net/RogerTwain/archive/2007/03/23/105678.html

关于书,推荐两本:
Design Patterns: Elements of Reusable Object-Oriented Software(归纳这些模式的大师的经典之作,尽管示例程序为C++和SmallTalk)
Java与模式:基本上对上部书的全面阐述使得更加易懂并结合Java讲解如何实现/应用这些模式。加了作者深刻广泛的理解,有些地方略显罗索和牵强。



www.actuatechina.com

A simple guy living a simple life in every simple day

话题树型展开
人气 标题 作者 字数 发贴时间
10667 本人学java不久,想学以下设计模式,不知从何入手 holly2k 16 2008-03-31 16:40
7577 Re:本人学java不久,想学以下设计模式,不知从何入手 jameszhang 88 2008-04-12 20:41
8786 Re:本人学java不久,想学以下设计模式,不知从何入手 rogertu 1169 2008-06-04 23:52

flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   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