刘伟技术博客

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

十年磨一剑——《Java设计模式》正式出版

        十年磨一剑,《Java设计模式》于2018年3月正式出版,感谢清华大学出版社和各位的大力支持!笔者自认为该书是国内最好的Java设计模式图书之一!,低调!      本书内容丰富,实例完整,主要特点如下:● 内容丰富,详细讲解7个面向对象设计原则和24个常用设计模式● 实例驱动,提...

2018-03-18 17:07:48

阅读数:5014

评论数:16

史上最全设计模式导学目录(完整版)

圣诞献礼!          2012年-2013年,Sunny在CSDN技术博客中陆续发表了100多篇与设计模式相关的文章,涵盖了七个面向对象设计原则和24个设计模式(23个GoF设计模式 +  简单工厂模式),为了方便大家学习,现将所有与设计模式学习相关文章的链接进行了整理,希望能给各位带来帮...

2013-12-24 23:15:16

阅读数:241087

评论数:171

《C#设计模式》PPT及源码分享

《C#设计模式》一书所有PPT及源码已上传至百度文库和百度云网盘,欢迎各位阅读与下载,如有意见和建议,请发送邮件至:weiliu_china@126.com或weiliu_china@163.com,。        PS:本人正准备编写一本关于C++设计模式的书,如果大家有好的基于C++的模式应...

2013-06-22 00:12:13

阅读数:16012

评论数:10

《设计模式》一书PPT浏览及下载地址

微博地址: http://weibo.com/csusunny          为了给大家浏览与下载提供方便,现将《设计模式》一书PPT的下载地址(百度文库)公布如下(可直接在线浏览,也可免费下载,):      第1章 统一建模语言基础知识 http://wenku.baidu.com/vie...

2012-08-13 23:36:23

阅读数:23434

评论数:31

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

2012年系统架构设计师考试下午试题中出现了一道25分的设计模式大题,上午仍旧是5道选择题,可以说是从2009年开考以来设计模式试题量最多的一年。Sunny友情建议:建议大家先做做这些试题,看是否能够正确解答,如果在解答的同时能够拿出具体的设计和实现方案,我相信一定会受益匪浅!

2014-03-17 22:11:51

阅读数:16421

评论数:8

Sunny谈重构

按照软件工程大神Martin Fowler的定义,重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。这是重构的定义,简单来说就是不改变软件的功能,优化软件设计和代码,让软件更易于扩展和维护,当然也包括易于复用。

2013-12-31 00:51:29

阅读数:9258

评论数:6

对模式的十大误解

葛子昂译 这些日子,模式引起了大家强烈的兴趣,同时还伴随着一些迷惑、诧异和误解。这在一定程度上体现了主流软件开发人员认为这个领域有多么新,虽然从严格意义上说,它并不是一个新领域。这个领域的快速发展,也造成了一些空白。作为模式的倡导者,我们对此负有一定的责任:我们虽然一直努力让大家理解和接受模式([...

2013-12-29 22:06:51

阅读数:11145

评论数:11

Sunny谈软件架构

软件架构是软件工程一个很重要的分支,随着软件规模的扩大和软件寿命的延长,软件架构也越发重要。就像建筑领域,盖一个狗窝不需要进行分析与设计,但是如果是要盖一座万人体育场或者摩天大楼,那一定会离不开设计师。软件工程与之同理,好的架构能够决定软件的成败。软件架构不只是简单的分层或者划分模块,它包括更多的...

2013-12-19 23:11:44

阅读数:6709

评论数:4

一道关于高朋网(Groupon)的设计模式题(英文版)

Groupon has already been called the “fastest growing company in history” by the Forbes magazine. In it’s second full year of business, 2010,  it pull...

2013-12-18 23:05:31

阅读数:4675

评论数:0

Bug管理系统UML2.0建模实例(四)

3.3 顺序图(实现模型)       在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息。在BMS系统中,对每个用例均可以绘制基于实现模型的顺序图。由于篇幅关系,未将每个用例的顺序图一一列举。图3...

2013-12-16 23:15:48

阅读数:7415

评论数:3

Bug管理系统UML2.0建模实例(三)

3.系统设计       在对系统进行全面分析后,我们开始使用UML方法对系统进行设计,构造了BMS系统的设计模型,包括类图、包图、顺序图(实现模型)、组件图和部署图等的绘制,回答了“怎么做”的问题。具体设计工作如下: 3.1 体系结构设计       BMS采用多层Java EE设计方案,考虑到...

2013-12-16 23:12:15

阅读数:7698

评论数:2

Bug管理系统UML2.0建模实例(二)

2.3 BMS顺序图(需求模型)       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型);另一类用于指导设计与实现,构造系统的实现模型(设计模型)。       在系统分析时,可以通过顺序图来对执行者和系统的交互过程进行建模,方便用户更好地理解系统的工作...

2013-12-16 22:08:50

阅读数:8241

评论数:3

Bug管理系统UML2.0建模实例(一)

本实例是Sunny给企业做UML内训时所用教学实例之一,是一个较为完整的UML建模实例,可供大家学习参考之需! 1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要。每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产...

2013-12-16 21:47:28

阅读数:12613

评论数:2

设计模式的局限性与适用性

《设计模式》的出版,是软件开发领域的一个关键转折点。设计模式理论的出现,让我们对软件的关注点,从如何在特定语言中实现最好的算法,提升为如何在特定环境下找到特定软件问题的最佳解决办法。这个转变不是一夜完成的,因为在这本书诞生前,软件模式运动已经进行多年。但这本书引领我们超越了在代码重用上的争议,上升...

2013-09-29 16:14:44

阅读数:4562

评论数:2

任何设计模式都只是工具

《设计模式》从诞生之日到现在,已经走过整整15年!每当触及这本书,我就会想到一件事。1997年,我用非常巧妙的方法解决了一个程序上的难题,于是兴冲冲地找到名满Java界的大师Doug Lea,不无得意地向他“讲解”我那“史无前例”的解决方案。哪知他只是淡淡一笑,告诉我这个方案在1995年出版的图书...

2013-09-26 23:54:49

阅读数:4269

评论数:1

遍历聚合对象中的元素——迭代器模式(六)

6 迭代器模式总结       迭代器模式是一种使用频率非常高的设计模式,通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历数据由迭代器来完成。由于很多编程语言的类库都已经实现了迭代器模式,因此在实际开发中,我们只需要直接使用Java、C#等语言已定义好的迭代器...

2013-08-15 23:44:16

阅读数:8309

评论数:5

遍历聚合对象中的元素——迭代器模式(五)

5 JDK内置迭代器       为了让开发人员能够更加方便地操作聚合对象,在Java、C#等编程语言中都提供了内置迭代器。在Java集合框架中,常用的List和Set等聚合类都继承(或实现)了java.util.Collection接口,在Collection接口中声明了如下方法(部分):pac...

2013-08-15 23:41:50

阅读数:11495

评论数:8

遍历聚合对象中的元素——迭代器模式(四)

4 使用内部类实现迭代器       在迭代器模式结构图中,我们可以看到具体迭代器类和具体聚合类之间存在双重关系,其中一个关系为关联关系,在具体迭代器中需要维持一个对具体聚合对象的引用,该关联关系的目的是访问存储在聚合对象中的数据,以便迭代器能够对这些数据进行遍历操作。       除了使用关联关...

2013-08-15 23:29:29

阅读数:8094

评论数:9

遍历聚合对象中的元素——迭代器模式(三)

3 完整解决方案       为了简化AbstractObjectList类的结构,并给不同的具体数据集合类提供不同的遍历方式,Sunny软件公司开发人员使用迭代器模式来重构AbstractObjectList类的设计,重构之后的销售管理系统数据遍历结构如图4所示:图4 销售管理系统数据遍历结构图...

2013-08-15 23:23:43

阅读数:9720

评论数:11

遍历聚合对象中的元素——迭代器模式(二)

2 迭代器模式概述       在软件开发时,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,可以将遍历数据的行为从聚合对象中分离出来,封装在一个被称之为“迭代器”的对象中,...

2013-08-15 22:57:29

阅读数:11552

评论数:7

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