刘伟技术博客

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

历年软件设计师下午考试试题汇总统计(更新至2016年上半年)

本文对2006年5月至2013年5月【8年,15次】的软件设计师级别下午试题进行一个简单的汇总统计,希望对准备参加软考的朋友能有所帮助。     从2006年5月开始(尤其是从2010年5月开始),软件设计师级别的试题题型基本固定:       (1) 第一题为结构化分析与设计,主要考查数据流图D...

2012-05-15 23:34:56

阅读数:32667

评论数:35

面向对象设计原则之迪米特法则

迪米特法则来自于1987年美国东北大学(Northeastern University)一个名为“Demeter”的研究项目。迪米特法则又称为最少知识原则(LeastKnowledge Principle, LKP),其定义如下: 迪米特法则(Law of  Demeter,...

2012-05-14 01:34:44

阅读数:21454

评论数:22

面向对象设计原则之合成复用原则

合成复用原则又称为组合/聚合复用原则(Composition/Aggregate Reuse Principle, CARP),其定义如下: 合成复用原则(Composite Reuse Principle, CRP):尽量使用对象组合,而不是继承来达到复用的目的。 ...

2012-05-14 01:24:22

阅读数:23761

评论数:24

面向对象设计原则之接口隔离原则

接口隔离原则定义如下: 接口隔离原则(Interface  Segregation Principle, ISP):使用多个专门的接口,而不使用单一的总接口,即客户端不应该依赖那些它不需要的接口。       根据接口隔离原则,当一个接口太大时,我们需要将它...

2012-05-13 19:54:28

阅读数:20960

评论数:46

面向对象设计原则之依赖倒转原则

如果说开闭原则是面向对象设计的目标的话,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。依赖倒转原则是Robert C. Martin在1996年为“C++Reporter”所写的专栏Engineering Notebook的第三篇,后来加入到他在2002年出版的...

2012-05-13 19:43:25

阅读数:21026

评论数:36

面向对象设计原则之里氏代换原则

里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P...

2012-05-06 21:56:23

阅读数:36377

评论数:41

面向对象设计原则之开闭原则

开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。开闭原则由Bertrand  Meyer于1988年提出,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有...

2012-05-05 15:05:50

阅读数:28396

评论数:36

面向对象设计原则之单一职责原则

单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 ...

2012-05-04 23:57:59

阅读数:26786

评论数:34

面向对象设计原则概述

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一。在面向对象设计中,可维护性的复用是以设计原则为基础的。每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件...

2012-05-04 23:50:29

阅读数:21130

评论数:25

撤销功能的实现——备忘录模式(五)

21.5 再谈备忘录的封装      备忘录是一个很特殊的对象,只有原发器对它拥有控制的权力,负责人只负责管理,而其他类无法访问到备忘录,因此我们需要对备忘录进行封装。      为了实现对备忘录对象的封装,需要对备忘录的调用进行控制,对于原发器而言,它可以调用备忘录的所有信息,允许原发器访问返回...

2012-05-02 01:19:17

阅读数:6884

评论数:7

撤销功能的实现——备忘录模式(四)

21.4 实现多次撤销      Sunny软件公司开发人员通过使用备忘录模式实现了中国象棋棋子的撤销操作,但是使用上述代码只能实现一次撤销,因为在负责人类中只定义一个备忘录对象来保存状态,后面保存的状态会将前一次保存的状态覆盖,但有时候用户需要撤销多步操作。如何实现多次撤销呢?本节将提供一种多次...

2012-05-02 01:13:28

阅读数:8303

评论数:9

撤销功能的实现——备忘录模式(三)

21.3 完整解决方案      为了实现撤销功能,Sunny公司开发人员决定使用备忘录模式来设计中国象棋软件,其基本结构如图21-4所示:      在图21-4中,Chessman充当原发器,ChessmanMemento充当备忘录,MementoCaretaker充当负责人,在Memento...

2012-05-02 01:07:37

阅读数:8100

评论数:8

撤销功能的实现——备忘录模式(二)

21.2 备忘录模式概述      备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘录模式。      备忘录模式定义如下:备忘录模式(...

2012-05-02 00:59:42

阅读数:9921

评论数:4

撤销功能的实现——备忘录模式(一)

每个人都有过后悔的时候,但人生并无后悔药,有些错误一旦发生就无法再挽回,有些人一旦错过就不会再回来,有些话一旦说出口就不可能再收回,这就是人生。为了不后悔,凡事我们都需要三思而后行。说了这么多,大家可能已经晕了,不是在学设计模式吗?为什么弄出这么一堆人生感悟来,呵呵,别着急,本章将介绍一种让我们可...

2012-05-02 00:48:18

阅读数:13267

评论数:9

《设计模式的艺术》正式完工

终于借着这个五一小长假,将《设计模式的艺术》一书全部写完了,从去年5月份到今年4月份,前后写了整整一年,经常熬到晚上两三点,头发都白了不少,还常常自嘲式的发出“江郎才尽”的感慨,不过看着近400页的“新作”,还是挺有成就感的。      为了取个好一点的书名,我纠结了很久(因为貌似很多好书名都被大...

2012-05-02 00:20:52

阅读数:6016

评论数:17

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