自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

面向对象思考

天下难事必作於易。天下大事必作於细。

  • 博客(12)
  • 资源 (24)
  • 收藏
  • 关注

原创 Aha!设计模式(15)-BUILDER(6)

效果   2) 它将构造代码和表示代码分开。   Builder模式将构建对象的代码和表现(表达)对象的代码隔离开。这里的构建偏向于抽象的指示部分,表现(表达)则偏向实际的输出。例如我们说装一扇门,对于建筑模型来讲,可能就是在模型上粘一个小木板;对于现场工人来讲,可能真的就是安装一个防盗门。这里装一扇门就是抽象的指示,而粘小木板或者安装防盗门则是具象表现(表达)的部分。   Build...

2018-11-28 20:13:32 290

原创 Aha!设计模式(14)-BUILDER(5)

效果   这里是Builder模式的主要效果: 1 ) 它使你可以改变一个产品的内部表示。   首先明确两个词。一是前面已经提到过《设计模式》书中将representation翻译成表示,作者认为应该译为表现;二是关于内部的理解。当我们用不同的方式盖两座大楼时,它们的内部当然不同,但是大多数情况下外部也会不同。所以作者认为,《设计模式》这部分内容中提到的内部,应该指的是隐藏在构建接口后面的...

2018-11-27 20:01:13 282

原创 Aha!设计模式(13)-BUILDER(4)

参与者   Builder(TextConverter) — 为创建一个Product对象的各个部件指定抽象接口。 •ConcreteBuilder(ASCIIConverter,TeXConverter,TextWidgetConverter) — 实现Builder的接口以构造和装配该产品的各个部件。 — 定义并明确它所创建的表示。 — 提供一个检索产品的接口(例如, GetASCIITe...

2018-11-26 20:21:11 267

原创 Aha!设计模式(12)-BUILDER(3)

适用性   在以下情况使用Builder模式 • 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。 • 当构造过程必须允许被构造的对象有不同的表示时。   一般来讲,创造一个复杂对象的处理总是可以拆分成算法(或步骤)的部分和实际生成构件的部分。无论我们希望独立算法还是替换表现,所做的都是一件事,把算法和生成构件拆分开,这就是Builder模式。   简单说就是,想变...

2018-11-21 20:43:42 324

原创 Aha!设计模式(11)-BUILDER(2)

动机 《设计模式》中关于BUILDER动机的说明使用的是RTF文档格式转换的例子。这个例子本身很容易理解,这里就不再重复了。本文只讲作者本人的见解。   还是那一招 本连载提到过:大部分情况下,设计模式也好,面向对象也好其实就是一招,多态。这个结论对于BUILDER模式同样使用。具体到《设计模式》中的例子,希望变化的就是输出的类型或者说格式。基于这个想法,即使我们没有学习设计模式,也可以进...

2018-11-20 19:39:14 268

原创 Aha!设计模式(10)-BUILDER(1)

本来抽象工厂模式还有已知应用和相关模式两个模块,但是它们对于理解设计模式没有什么意义,本系列连载会直接省略。   名称 还是先看名称。这个设计模式的英文为BUILDER,中文翻译成了“生成器”,作者认为这个翻译不太好,如果翻译成【构建者】,或者【建造者】没准会更好。【生成器】的说法无法给人构建对象很大,很复杂的感觉。例如大楼,轮船等。还是英文的BUILDER最好。   意图 将一个复杂...

2018-11-19 19:59:01 283

原创 Aha!设计模式(9)-抽象工厂(8)

代码示例   《设计模式》一书中关于代码示例的说明非常详细,这里不再重复原书中的内容。希望大家自己去读一遍原著,然后再来阅读本文的内容。   基本上每个设计模式的代码示例都会讲一个故事,但是故事并不是设计模式的重点,它只是希望大家相信真的存在需要这个模式的场景。重要的还是类关系和代码。   利用者代码:   这段代码中创建了一个Maze对象,两个Room对象和六个Wall对象,...

2018-11-14 20:27:39 275

原创 Aha!设计模式(8)-抽象工厂(7)

实 现(续)   2) 创建产品 AbstractFactory仅声明一个创建产品的接口 ,真正创建产品是由 ConcreteProduct子类实现的。最通常的一个办法是为每一个产品定义一个工厂方法(参见Factory Method(3 . 3))。一个具体的工厂将为每个产品重定义该工厂方法以指定产品。虽然这样的实现很简单,但它却要求每个产品系列都要有一个新的具体工厂子类,即使这些产品系列的差...

2018-11-13 19:49:01 379

原创 Aha!设计模式(7)-抽象工厂(6)

实 现   下面是实现Abstract Factor模式的一些有用技术: 1) 将工厂作为单件 一个应用中一般每个产品系列只需一个ConcreteFactory的实例。因此工厂通常最好实现为一个Singleton(3.5)。   只有一句话,但是并没有给出实现。为了说明这个问题,作者按照自己的理解,以前面提到的操作系统主题的例子为背景提供一个实现。   类图: 有关Singlet...

2018-11-12 18:29:26 274

原创 Aha!设计模式(6)-抽象工厂(5)

协作 • 通常在运行时刻创建(唯一的)一个ConcreteFactory类的实例。这一具体的工厂创建具有特定实现的产品对象。为创建不同的产品对象,客户应使用不同的具体工厂。   原书的翻译有一点问题,根据以下的英文原文,作者在这里加上了一个修饰词“唯一的”,这样更准确。另外这里所谓不同的产品对象应该是另外一组产品对象的意思。   Normally a single instance of...

2018-11-07 20:33:24 281

原创 Aha!设计模式(5)-抽象工厂(4)

结构 下图为抽象工厂模式的类图。   这个类图和前面出现过的类图唯一的区别就是使用了更加抽象的类名。所以就不在重复说明了。   这里说说另一个话题:画类图。抽象工厂模式的类图可以按照以下步骤(当然不是绝对的)画出: 首先可以个画出三个工厂类。 为每个工厂类添加两个产生产品的操作/方法。 画出两个产品系列的继承结构。 添加客户类。 添加依赖...

2018-11-06 20:40:55 279

原创 Aha!设计模式(4)-抽象工厂(3)

适用性 在以下情况可以使用Abstract Factory模式   • 一个系统要独立于它的产品的创建、组合和表示时。   对于一个一定规模以上的软件,经常会出现需要多个功能组件协同工作的情况。为了降低耦合性,增强扩展性,经常要对系统进行分解。这时将功能组件的创建,组合(协同动作)和表示分离是一种常用的方式。而功能组件的创建部分就可以使用抽象工程模式。   • 一个系统要由多个产品系...

2018-11-05 20:55:27 323

Aduino UNO D1 R32 硬件包

Aduino UNO D1 R32开发环境构筑时使用的硬件开发包,包含2020年3月的最新文件: arduino-esp32-master.zip esptool-2.6.1-windows.zip mkspiffs-0.2.3-arduino-esp32-win32.zip xtensa-esp32-elf-win32-1.22.0-80-g6c4433a-5.2.0.zip

2020-03-15

C++11新特性文章汇总

本文件中汇集了博客中关于·C++11x新特性的所有文章。

2018-10-25

多任务编程超入门-(11) 学以致用

多任务编程超入门-(11) 学以致用的示例工程,代码

2017-07-26

多任务编程超入门-(10) 线程同步,数据交换的序列图

多任务编程超入门-(10) 线程同步,数据交换的序列图

2017-07-23

多任务编程超入门-(9) 线程同步

多任务编程超入门-(9) 线程同步 示例代码,QT工程

2017-07-19

多任务编程超入门-(8) 递归互斥量

多任务编程超入门-(8) 递归互斥量 示例工程,代码

2017-07-17

多任务编程超入门-(5) 对症下药

多任务编程超入门-(5) 对症下药 示例代码

2017-07-11

多任务编程超入门-(4) 发生了什么? 示例代码

多任务编程超入门-(4) 发生了什么? 示例代码

2017-07-10

多任务编程超入门-(4) 发生了什么?

多任务编程超入门-(4) 发生了什么? 出现的QT工程文件,示例代码

2017-07-10

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

多任务编程超入门-(2) 线程协作的理想和现实 示例代码

2017-07-09

Android函数计算器(含源码,测试工程)

原创Android环境下的计算器的源代码,工程文件 Android环境下的单元测试工程及源代码。

2011-12-18

Android歌词秀源代码及工程文件

Android歌词秀源的代码及工程文件。适用Android2.1以上系统

2011-11-27

Anroid歌词秀1.5版

Anroid歌词秀1.5版的安装包,下载后可直接安装在Android(版本2.1以上)上。

2011-11-27

Qt环境下开发的计算器源码

Qt环境下开发的计算器源码 支持三角函数,反三角函数,求和,平均值,乘方,开方,对数 当然还有包含嵌套的四则运算。

2011-10-14

Qt开发的计算器(可执行文件)

利用Qt开发的计算器的可执行文件。 可以直接在Widnows环境中执行。

2011-10-14

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码

[Android应用开发记录-字幕播放器(5)完善]附属工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

Android应用开发记录-字幕播放器(5)完善附带工程,源码

Android应用开发记录-字幕播放器(5)完善附带工程,源码 1.将操作按钮改成图标方式 2.有电话接入时暂停播放。 3.通过线控按钮控制播放,暂停,上一句歌词,下一句歌词功能。(Android2.2以上版本) 4.拔掉耳机线时自动暂停(Android2.2以上版本) 5.在【正在进行中】画面中表示启动用快捷方式 6.改善(没有解决)定位歌词不准确(选中的歌词的前面一段时间不能播放)

2011-09-07

LyricPlayer类图

目前内容: LyricPlayer全体类图 SaftyTimer 类图第一版,持续更新中。

2011-09-04

LyricPlayer for Android 2.1

对软件进行如下变更后生成的安装文件。 将Android版本调整为2.1 按钮换成ImageButton 通过点击直接选择歌词播放

2011-09-03

Android应用开发记录-字幕播放器(4)完成

<<Android应用开发记录-字幕播放器(4)完成>>配合的工程文件,源码,用于动作确认的歌曲及歌词 另外,工程是针对Android2.2建立的。 如果想在Android2.1运行,可以修改工程文件或从下面地址下载针对2.1做的安装包,应该可以直接安装。 http://download.csdn.net/source/3571257

2011-08-28

Android应用开发记录-字幕播放器(3)工程包

用于【博客:Android应用开发记录-字幕播放器(3)使用的Service的音频播放器的】的工程文件及源码

2011-08-18

Android学习-字幕播放器(2)先来一个音频播放器

Android学习-字幕播放器(2)的工程和源代码

2011-08-13

Android小游戏-9宫格类图类图

Android小游戏-9宫格类图类图,配合源码、 请用EA(Enterprise Architect)打开

2011-08-11

Android下的原创小游戏-九宫格

为了学习Android,自己编了一个小游戏,就是9宫格。 功能: 1.自动分析可选数字。 2.Undo(用了Command设计模式) 3.支持自编题目。 内容: Andorid工程,源码

2011-08-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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