01 2011 档案

摘要:面向对象设计的一个重要分析方法是利用对象的职责来驱动设计。对象有了职责,才会成为具体拥有意识的对象,成为对象社区中可以独立完成,或者发出指令委派别的对象协作完成职责的一员。将对象看成是“具有职责的东西”。对象应该自己负责自己,而且应该清楚地定义职责。这就是对象设计的关键。好的软件设计者应该像牧羊人一般放牧自己的牛羊,只需要给它们一片丰沃的草地,它们就能自己觅食生活。  Rebecca认为:对象在履... 阅读全文
posted @ 2011-01-26 16:20 张逸 阅读(3195) 评论(25) 推荐(6) 编辑
摘要:作者:侯伯薇 终于阅读完了张逸先生的《软件设计精要与模式》一书,掩卷沉思,书中对于软件设计这门学问的理解和阐述让我受益良多,潜移默化之中,我对于软件设计的过程以及模式的使用又有了新的认识。因此,我对此书的评价是一本不可多得的优秀书籍。 不能光说优秀,到底优秀在何处呢?个人感觉有以下几点: 首先,内容不浮躁。 放眼当今的图书市场,很多书都被冠以《**天精通***》《***入门到精通》等等很诱惑... 阅读全文
posted @ 2011-01-21 16:34 张逸 阅读(1655) 评论(4) 推荐(2) 编辑
摘要:间接在分层架构中体现尤为明显,引入层实则就是引入间接性。利用间接对变化进行隔离,使得变化只能影响一层。例如在领域层与数据库之间引入数据访问层,就可以隔绝因为数据库发生的变化对领域带来的影响。 在分层架构中,我们应尽量保证在某一层中所有用到的组件都工作在同一个抽象层中,这意味着需要谨慎处理对象之间的协作,尽量避免跨层之间的调用。如果不同的层部署在不同的服务器,就会带来不必要的消息处理,增加了网络跳... 阅读全文
posted @ 2011-01-18 09:25 张逸 阅读(2593) 评论(2) 推荐(6) 编辑
摘要:抽象建立的这层间接性,解除了调用者与实现类之间的具体依赖,使得实现类可以单独变化,而不会影响到调用者。例如,当我们需要为元数据的读取操作定义对象时,好的编码习惯是为其定义一个接口: MetadataReaderServiceImpl类实现了MetadataReaderService接口,在实现中通过注入数据访问对象,完成对元数据信息的读取: 为何一定要定义MetadataReaderService... 阅读全文
posted @ 2011-01-17 10:34 张逸 阅读(2262) 评论(4) 推荐(6) 编辑
摘要:David Wheeler有一句名言:“计算机科学中的大多数问题都可以通过增加一层间接性来解决。”间接代表着迂回。世间没有哪一条道路是完全笔直的。蜿蜒曲折的道路并非出于美的灵感,不过是因为我们需要绕开路途中的障碍罢了。 我们在设计中遇到的最大障碍,无疑就是变化。若能御变化于实现之外,软件开发就会变得美好。 应对变化的要诀是隔离。设计者需要界定对象的不变部分与可变部分,然后将可变部分隐藏起来,即使发... 阅读全文
posted @ 2011-01-14 09:25 张逸 阅读(2638) 评论(5) 推荐(6) 编辑
摘要:福尔斯特说:即将来临的一天,比过去的一年更为悠长。可是这即将来临的一天,无论多么的悠长,终究会流入过去的长河中。把握过去,或许可以成为另一种永恒。回眸过去的2010年,架构的发展或如花开花落如此的相似,却又如人来人往如此的不同!软件技术正是在这样一种变与不变中艰难的演进。透视InfoQ中文站架构社区在这一年中的热点,或许能帮助我们抓住架构发展的脉络。如此,在即将来临的一天,我们才不会产生面对未来的... 阅读全文
posted @ 2011-01-13 09:26 张逸 阅读(3840) 评论(7) 推荐(9) 编辑