??xml version="1.0" encoding="utf-8" standalone="yes"?> (?/SPAN>: Design Pattern面世都十几年?/SPAN>, 现在q是有不好书在介绍?/SPAN>,所?/SPAN>?/SPAN>?/SPAN>?/SPAN>不代表不?/SPAN>,泡(chng)的ȝ在园子里q是最好的一?/SPAN>TDD文章, 特别刚接?/SPAN>TDD的参考之.) NTDD真得q么不堪一?/SPAN>?... 详细内容
《重构》那本书你看q了(jin)吗?它写的是什么?那本书的价g在?介绍重构q门技术?告诉你ؓ(f)什么重构?错!那本书的价值就在于它把应该引v重构的Bad Smell一一列了(jin)出来Qƈl出?jin)该如何重构解决q些Bad Smell的意见,不然那本书看一遍就可以扔了(jin)Q?BR>
你知道什么是面向对象吗?接口Q?你知道什么是TDD吗?重构Q?BR>
详细内容
]]>
TDD的应?/SPAN>是阻?/SPAN>TDD发展的重要原?/SPAN>, 回想一下有?/SPAN>TDD书中丄那些例子. 再想想你学习(fn)?jin)?/SPAN>TDD自己又做?jin)哪些应?/SPAN>? --- cd, 最基本的几个类之间协作, 不涉?qing)数据?/SPAN>,不涉?/SPAN>UI,不涉?qing)企业服?/SPAN>. q样看来TDD最适用的场合就是不涉及(qing)复杂应用的类?/SPAN>. 比如一个保龄球游戏, 一?/SPAN>Money兑换pȝ. 如果是这样那TDD自然没有人用?/SPAN>, 真正的项目有几个不涉?qing)负责应用?/SPAN>, 有几个不和数据库,界面打交?/SPAN>? 可是一旦你惛_TDD应用于此?/SPAN>, 你就?x)发现?ch)不胜?/SPAN>, 无从下手.
]]>
在阅L文之前推荐阅?/SPAN>O/R Mapping 基本概念,在基本概念上达成p.
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-06 23:38 | alittlefish
在实际操作中Q多态可以让我不用关?j)某个对象到底是什么具体类型,可以用该对象的某些方法,而这些方法通过一个抽象类或者接口来实现?SPAN lang=EN-US>
从下往上看的话Q多态实际上是多个对象的抽象Q对它们q行通用~码?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 08:41 | 一切从.NET开?/SPAN>
没有多态,工厂Ҏ(gu)模式的效果就大打折扣Q或者可以说不可能实?Q)(j)
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 08:47 | 诈
对于相同的事Ӟ不指一般我们说的那些事Ӟ(j)Q不同的对象表现Z同的行ؓ(f)Q特征)(j)?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 09:22 | KingofSC
多态给我的感觉是提供父类调用子类代码的一个手D而已
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 09:29 | idior
很好Ql,希望看到更多更新的观炏V?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 10:08 | age0
l承的目的是复用Q承复用包括两斚w的复用:(x)抽象Q接口)(j)复用Q实玎ͼq程Q复用?SPAN lang=EN-US>
多态的目的是要将抽象复用?qing)实现复用剥d来,子类虽然拥有和父cML(fng)抽象接口Q但实现q程却未必一P多态的引入是要在l承的基上实现变异的可能性。当然子cȝ承也不一定会(x)产生实现差异Q所以多态允许在产生差异的时?SPAN lang=EN-US>override父类接口Q没有生差异的时候直接ѝ?SPAN lang=EN-US>
interface则是另一U复用方式,interface只允许抽象复用,而禁止实现复用,所?SPAN lang=EN-US>interface比承显得更轻量Q但实际上系l中的实现复用必ȝ其他机制来保证?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 10:15 | age0
To idiorQ想用一两句话来解释清楚一个深奥的概念是不是有点不切实际?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 10:53 | rIPPER
一?找不?SPAN lang=EN-US>sun ?SPAN lang=EN-US> oo-226评?jin),里面应该有比较简单明的定义
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 10:59 | sysword
我的理解Q一个问题(sh)般会(x)表现在多个层面上Q各个层面上抽象E度不同Q多态正是思考问题过E中跨越各层的桥梁?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 11:09 | dudu
我觉得多态是在对象的基础上更高的抽?SPAN lang=EN-US>, 它描qC(jin)一l具有共性的对象?SPAN lang=EN-US>
Allen Lee的《今天你多态了(jin)?SPAN lang=EN-US>?》值得一?SPAN lang=EN-US>: http://www.cnblogs.com/allenlooplee/archive/2004/11/02/59519.html
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 12:38 | 生活、工?/SPAN>
q行Ӟ才明具体是指那个对象,q给client代码Q带来了(jin)很大的灵zL。依赖注入、针Ҏ(gu)象与接口~程、同一行代码操作不同类的对?SPAN lang=EN-US>(用接?SPAN lang=EN-US>){等成ؓ(f)可能?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 12:50 | idior
我比较喜?SPAN lang=EN-US> ?/SPAN>生活、工?SPAN lang=EN-US>?/SPAN>的描q?SPAN lang=EN-US>
◎age0
如果概念解释是很隄一两句话说清?SPAN lang=EN-US>
但是像?/SPAN>生活、工?SPAN lang=EN-US>?/SPAN>q样的描q就能有意义?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 17:43 | 班门弄斧
多态是多个对象UpCast的过E?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 19:56 | 丁丁
用h来表C基对象Q多态就是对于不同种cȝ人(情圣或者情Ԍ(j)Q拍MM马屁虽然目的相同Q但是效果很不相同,情圣?SPAN lang=EN-US>?/SPAN>你好漂亮?/SPAN>抱?SPAN lang=EN-US>MM归,而情盲拍得话Q可能就被锯
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-07 22:57 | Neter
我比较同意小诈的观点Q多态就是具有相似功能的对象Q有着不同的表现方法和行ؓ(f)?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-08 01:32 | NickLedson
我的观点是大大增Z码的复用?SPAN lang=EN-US>,使得目架构更加清晰,松耦合.
比如在实际应用中我可以轻杄承一?SPAN lang=EN-US>System.Window.Forms.Control命名I间下的cL?SPAN lang=EN-US>Button打造属于自qNixButtonc而当一些原有系l的Ҏ(gu)参数要求的传入的参数cd?SPAN lang=EN-US>Button?SPAN lang=EN-US>,我不必修改原有代码而直接把NixButton的实例对象传q去依然可用.
从而达C码复用和架构松耦合的效?SPAN lang=EN-US>
子类l承?jin)父cȝ所有接?SPAN lang=EN-US>,包括invoke handler/object对应表然后按l承关系?SPAN lang=EN-US>invoke handler不同而调用不同的实现代码!
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-08 09:44 | idior
诈的观点确实比较简明的说出?jin)多态的表现.
希望看到更加深刻透彻的观?SPAN lang=EN-US>.
删除评论 修改评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-11 16:15 | myx
一位司机在公共汽R上,有可能是乘客Q有可能是司机,就是多态吧^_^
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-13 06:21 | MindScape
和小作的差不多,多态的本质Ҏ(gu)是语义相同?SPAN lang=EN-US>
多态是指,不同对象对应于同一动作语义h不同的实际行为?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-13 18:10 | 龙蛰(NeoLee)
呵,我也常在面试中提到对?/SPAN>多?SPAN lang=EN-US>?/SPAN>的理解,我的理解是:(x)
接口是面象对象的实现Q多态是面象接口的应用!
BTW:不太认同sumtec的面向对象就是面向接?SPAN lang=EN-US>. 面象对象更多的是一U开发思想Q接口更多的是实现技术,?SPAN lang=EN-US>?/SPAN>是?/SPAN>来表达不切Q但q么形容也道出接口是面象对象开发中实现抽象最主要的手D?SPAN lang=EN-US>!
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-13 21:56 | idior
sumtec的那句话当然?/SPAN>不对?/SPAN>Q关键是道出很本质的东西?SPAN lang=EN-US>
我觉得多态是面向接口的保证,支持?而不是应用,关系反了(jin)吧?SPAN lang=EN-US>
׃多态的支持才能面向接口?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-14 00:32 | 龙蛰(NeoLee)
句中?SPAN lang=EN-US>?/SPAN>应用?/SPAN>有两重含义:(x)
其一Q多态是接口的特性。其二,是Ҏ(gu)口的应用Q如在子cMoverride父类接口?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-26 23:09 | jsports
我认为多态,首先蕴含?SPAN lang=EN-US>decorator 的味?SPAN lang=EN-US>---------->一L(fng)接口Q但是功能上增强?jin)?SPAN lang=EN-US>
另外一斚wQ多太表明实现多态的class是一族的Q?SPAN lang=EN-US>
对外部(外hQ来Ԍ只要知道有这个方法(标签Q,
具体q行时你是这个系列(族)(j)的谁Q我不关?j),我只兛_(j)你能l我q行q个服务p?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-27 08:30 | 生活、工?/SPAN>
通俗的说Q先说明一功能或动作Q风马牛不相?qing)的东西d现它?SPAN lang=EN-US>
Ҏ(gu)务器D代码而言Q?SPAN lang=EN-US>
订下q个功能的设计时间较长,但写时一下了(jin)完成了(jin)Q用1%的时_(d)但风马牛不相?qing)的东西d现它Ӟ耗时多?jin),?SPAN lang=EN-US>99%的时间?SPAN lang=EN-US>
对客L(fng)代码而言Q?SPAN lang=EN-US>
从用的角度_(d)(x)好处q是我上面所说的?SPAN lang=EN-US>
从学院派的角度说Q就是小诈的说法?/SPAN>对于相同的事Ӟ不指一般我们说的那些事Ӟ(j)Q不同的对象表现Z同的行ؓ(f)?/SPAN>?SPAN lang=EN-US>
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-03-27 11:41 | idior
jsports和生zR工作的观点都不?SPAN lang=EN-US> :)
删除评论 修改评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-04-01 13:54 | ttyp
多态是和承相反的概念
多态是父类调子cȝ实现Q承是子类调父cȝ实现Q由于多态时不知道会(x)被哪个子cȝ承,所以定义的东西都是虚函敎ͼ当你执行q个虚函数时Q首先找到该虚函C表的实体子类Qƈ执行子类中的相关代码
删除评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-04-01 14:08 | idior
@ttyp
多态是和承相反的概念 interesting idea!
删除评论 修改评论
# re: 多?SPAN lang=EN-US>? 你的理解是什?SPAN lang=EN-US>? 2005-04-09 13:24 | huangyi
我从客户和服务的角度来理?是
服务可以p多h来提供?SPAN lang=EN-US>
而客户只用服务,不需要知道服务的来源更不需要知道服务是如何实现的。另外,客户也许q(sh)(x)有小U,专门帮客户选择服务的?SPAN lang=EN-US>
?多态让客户太舒服了(jin)?呵呵
2. Reduce Private Method 量减少U有Ҏ(gu)
3. Open-Close Principle 闭开攑֎?/SPAN>
4. Specification Pattern 如何从一l对象中选出满特定条g的对?/SPAN>
本文围l以上主题就最q很行?/SPAN>RSS阅读器的一个功?/SPAN>(Mark)以测试驱动开发的方式展开.
详见文章
blogJava首脓(chung)