刘伟技术博客

专注软件架构、设计模式、重构、UML和OOAD!

《设计模式的艺术——软件开发人员内功修炼之道》交流贴

《设计模式的艺术——软件开发人员内功修炼之道》一书正式出版发行,已在国内各大知名电子商务网站陆续上架。 当当网            亚马逊            京东网              在本书的作者简介和前言中,我都加上了CSDN技术博客的地址,如下图所示,,以供大家学习和讨论之需。这...

2013-01-07 17:55:20

阅读数:11515

评论数:31

历年系统架构设计师考试之设计模式试题分析-2010年

2010年系统架构设计师考试在2009年的基础上增加了一道设计模式考题,Sunny友情建议:大家可以先做做这些试题,看是否能够正确解答,如果在解答的同时还能够拿出具体的设计和实现方案,我相信一定会受益匪浅!,试题分析和参考答案为Sunny个人所作,可能跟某些已发布的“标准答案”会有所不同,如有不同...

2013-01-30 23:27:14

阅读数:6581

评论数:0

历年系统架构设计师考试之设计模式试题分析-2009年

作为全国计算机技术与软件专业技术资格(水平)考试高级级别之一的系统架构设计师从2009年下半年开考。在历年系统架构设计师,都包含了一定数量的设计模式试题,而且呈现逐年增加的趋势,在2012年下半年的系统架构设计师的考试中包含了一道25分的大题。Sunny参加了2009年11月份的首次系统架构设计师...

2013-01-28 00:42:43

阅读数:6919

评论数:3

设计模式与软考试题之职责链模式

2007年下半年软件设计师考试下午试题最后一题考查职责链模式(责任链模式),原题如下: 【全国计算机技术与软件专业技术资格(水平)考试 2007年下半年 软件设计师 下午试卷】注:当年试题五、试题六和试题七三选一,试题六为C++版,试题七为Java版。 试题六       阅读以下说明和 C++代...

2013-01-26 23:52:39

阅读数:5627

评论数:2

组件设计原则之概念篇(四)

稳定抽象原则SAP是六个组件设计原则中的最后一个,它通常与稳定依赖原则SDP结合在一起,用于创建具有较高质量的组件依赖结构。终于是最后一个了,。 稳定抽象原则(The Stable-Abstractions Principle, SAP)A component should be as abstr...

2013-01-26 01:15:11

阅读数:9398

评论数:5

组件设计原则之概念篇(三)

最后两个组件设计原则将会结合软件度量来进行介绍,将引入一些软件度量因子,对组件设计进行定量的分析与研究。 稳定依赖原则(The Stable-Dependencies Principle, SDP)Depend in the direction of stability.朝着稳定的方向进行依赖。 ...

2013-01-25 13:54:12

阅读数:7107

评论数:2

组件设计原则之概念篇(二)

前三个组件设计原则关注组件的内聚,从本文开始,接下来将要介绍的三个原则更多关注组件间的耦合,其难度比前三个原则要大,我将结合一些示例进行讲解,主要参考资料仍然是Robert C.Martin的《敏捷软件开发:原则、模式与实践》(Agile Software Development: Princip...

2013-01-25 00:27:40

阅读数:10244

评论数:1

组件设计原则之概念篇(一)

在Robert C. Martin(Bob大叔)的《敏捷软件开发:原则、模式与实践》(Agile Software Development: Principles, Patterns, and Practices)一书中,他提出了一些用于设计组件(或包)的原则。传统的面向对象设计原则,例如SOLI...

2013-01-24 11:45:55

阅读数:9632

评论数:4

设计模式与软考试题之状态模式(二)

2011年下半年软件设计师考试下午试题最后一题考查状态模式,在本试题中,命题人设计了一个具有多个状态的纸巾售卖机,真题如下: 【全国计算机技术与软件专业技术资格(水平)考试  2011 年下半年 软件设计师 下午试卷】       注:当年试题五和试题六二选一,试题五为C++版,试题六为Java版...

2013-01-21 11:56:38

阅读数:5454

评论数:1

设计模式与软考试题之状态模式(一)

从2006年-2012年,在全国计算机技术与软件专业技术资格(水平)考试软件设计师级别考试中,状态模式已两次作为下午试题的最后一题出现(参考:历年软件设计师下午考试试题汇总统计),分别是2006年下半年和2011年下半年的两次考试。 【全国计算机技术与软件专业技术资格(水平)考试  2006 年下...

2013-01-21 00:37:07

阅读数:6238

评论数:2

处理对象的多种状态及其相互转换——状态模式(六)

6 状态模式总结       状态模式将一个对象在不同状态下的不同行为封装在一个个状态类中,通过设置不同的状态对象可以让环境对象拥有不同的行为,而状态转换的细节对于客户端而言是透明的,方便了客户端的使用。在实际开发中,状态模式具有较高的使用频率,在工作流和游戏开发中状态模式都得到了广泛的应用,例如...

2013-01-20 23:21:33

阅读数:8054

评论数:5

处理对象的多种状态及其相互转换——状态模式(五)

5 使用环境类实现状态转换       在状态模式中实现状态转换时,具体状态类可通过调用环境类Context的setState()方法进行状态的转换操作,也可以统一由环境类Context来实现状态的转换。此时,增加新的具体状态类可能需要修改其他具体状态类或者环境类的源代码,否则系统无法转换到新增状...

2013-01-20 23:06:03

阅读数:7296

评论数:6

处理对象的多种状态及其相互转换——状态模式(四)

4 共享状态      在有些情况下,多个环境对象可能需要共享同一个状态,如果希望在系统中实现多个环境对象共享一个或多个状态对象,那么需要将这些状态对象定义为环境类的静态成员对象。      下面通过一个简单实例来说明如何实现共享状态:      如果某系统要求两个开关对象要么都处于开的状态,要么...

2013-01-20 22:57:41

阅读数:7588

评论数:4

处理对象的多种状态及其相互转换——状态模式(三)

3 完整解决方案       Sunny软件公司开发人员使用状态模式来解决账户状态的转换问题,客户端只需要执行简单的存款和取款操作,系统根据余额将自动转换到相应的状态,其基本结构如图4所示:图4 银行账户结构图       在图4中,Account充当环境类角色,AccountState充当抽象状...

2013-01-20 22:50:29

阅读数:8618

评论数:9

处理对象的多种状态及其相互转换——状态模式(二)

2 状态模式概述      状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象状态可以灵活变化,对...

2013-01-20 22:43:02

阅读数:10507

评论数:15

处理对象的多种状态及其相互转换——状态模式(一)

“人有悲欢离合,月有阴晴圆缺”,包括人在内,很多事物都具有多种状态,而且在不同状态下会具有不同的行为,这些状态在特定条件下还将发生相互转换。就像水,它可以凝固成冰,也可以受热蒸发后变成水蒸汽,水可以流动,冰可以雕刻,蒸汽可以扩散。我们可以用UML状态图来描述H2O的三种状态,如图1所示:图1 H2...

2013-01-20 22:34:12

阅读数:12643

评论数:6

Robert C. Martin列举的专业软件开发人员必须精通的技能

在世界顶级软件开发大师Robert C. Martin(Bob大叔)最新力作The Clean Coder: A Code of Conduct for Professional Programmers(《程序员的职业素养》,章显洲、余晟译,人民邮电出版社,2012年)一书中,他结合自己40多年的...

2013-01-18 15:58:05

阅读数:8810

评论数:9

协调多个对象之间的交互——中介者模式(五)

20.4 中介者模式总结      中介者模式将一个网状的系统结构变成一个以中介者对象为中心的星形结构,在这个星型结构中,使用中介者对象与其他对象的一对多关系来取代原有对象之间的多对多关系。中介者模式在事件驱动类软件中应用较为广泛,特别是基于GUI(Graphical User Interface...

2013-01-08 22:20:03

阅读数:7264

评论数:2

协调多个对象之间的交互——中介者模式(四)

20.4 中介者与同事类的扩展       Sunny软件公司CRM系统的客户对“客户信息管理窗口”提出了一个修改意见:要求在窗口的下端能够及时显示当前系统中客户信息的总数。修改之后的界面如图20-9所示:图20-9 修改之后的“客户信息管理窗口”界面图       从图20-9中我们不难发现,可...

2013-01-08 22:00:21

阅读数:6198

评论数:3

协调多个对象之间的交互——中介者模式(三)

20.3 完整解决方案      为了协调界面组件对象之间的复杂交互关系,Sunny公司开发人员使用中介者模式来设计客户信息管理窗口,其结构示意图如图20-7所示:图20-7 引入了中介者类的“客户信息管理窗口”结构示意图      图20-7只是一个重构之后的结构示意图,在具体实现时,为了确保系...

2013-01-08 21:38:28

阅读数:7082

评论数:6

提示
确定要删除当前文章?
取消 删除
关闭
关闭