自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 问答 (95)
  • 收藏
  • 关注

转载 职责链模式

职责链模式通过建立一条链来组织请求的处理者,请求将沿着链进行传递,请求发送者无须知道请求在何时、何处以及如何被处理,实现了请求发送者与处理者的解耦。

2016-11-30 23:12:12 400

原创 代理模式

一 应用场景 相亲的时候一般有一个媒人,男方说什么话都通过媒人传递给女方。二 定义 代理模式Proxy Pattern:给某个对象提供一个代理,并由代理对象控制对原对象的引用,代理对象是一种对象结构模式。 Subject 抽象主题角色:声明真实主题和代理主题的共同接口,使得在任何使用真实主题的地方都可以使用代理主题,客户端通常都要针对抽象主题进行编程。Proxy 代理主题角色:代理主题包含了对

2016-11-30 21:30:44 398

转载 享元模式

一 应用场景 一个文本字符串存在很多的重复字符,如果每一个字符的用一个独立的对象来保存的话会浪费大量的资源。 或者围棋游戏中,每个棋子都是白色或者黑色并且大小一样只是位置不同。如果每个棋子都用一个独立的对象存储,那么和上面一样会造成大量的浪费。 享元模式就是为解决这种问题而生。二 定义 享元模式 Flyweight Pattern:运用共享技术有效的支持大量细粒度对象的复用。使系统使用少量的

2016-11-29 22:23:21 494

转载 外观模式

外观模式 facade pattern:外部与一个子系统的通信通过一个统一的外观角色进行。为子系统中的一组接口提供一个一致的入口,外观模式定义了一个高层接口,这个接口使这个子系统更加容易使用。

2016-11-29 16:54:56 406

转载 装饰器模式

一 定义 装饰器模式decorator pattern:动态的给一个对象增加一些额外的职责,在不改变本身功能的基础上增加一些额外的行为。 Component 抽象构件:是具体构件和抽象装饰类的共同父类,声明了在具体构件中的实现的业务方法。ConcreteComponent 具体的组件对象:是抽象构件构件的子类,实现具体的操作,可以增加额外的操作方法。(说的直白一点:装饰器就是给它增加装饰的)

2016-11-25 12:43:16 412

转载 组合模式

一 使用场景 做一个杀毒软件对个人电脑里的文件夹进行扫描,电脑文件夹里面可能包含文件也可能是一个文件夹。类似于这用树形结构。或者比如一个公司,公司下面有部门(叶子)和子公司(节点)。子公司也有部门,可能有子公司也可能没有子公司。二 定义 组合模式是多个对象形成树形结构以表示具有“整体-部分”关系的层次结构。组合模式对单个对象和组合对象的使用具有一致性。 Component抽象构件:这是一个

2016-11-24 21:45:49 384

转载 桥接模式Bridge Pattern

一 使用场景 我有三种型号的铅笔来绘制4种不同的颜色,需要准备3*4总共12只铅笔。如果我用三种型号的毛笔,来绘制4种不同的颜色,只需要3种毛笔外加4种笔墨即可。同理软件系统中存在两个独立变化的维度,通过桥接模式可以将这两种维度区分开来,使两种可以独立的扩展,让系统更加符合单一的原则。二 定义 桥接模式:是一种对象结构模型,将抽象部分(Abstraction)与实现部分(Implementati

2016-11-23 17:43:02 428

转载 适配器模式

一 应用场景 加入一个美国人身在欧洲,假如欧洲的电压标准是230V,而美国的民用电压一般是110V,如果这个美国人想要用欧洲的电,那么需要一个转换器,把230V的电压转换为110V。 上述例子的三个类: 欧洲电压:Adaptee 美国人用电设备:Target 转换器:Adapter二 定义 将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起

2016-11-22 16:01:55 335

转载 建造者模式

一 适用场景 游戏角色中每个人物都有不同的外形,脸型、肤色、体型等等。玩家不关心这些具体的细节,只关心最终的造型。二 定义 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式是一种对象创建型模式。 建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者

2016-11-21 16:38:26 873

转载 原型模式

一 应用场景 填写一个报表,有些重复的内容不必每次都偶重复填写,只需保存一个固定的模板,只需要填写不重复的内容即可。一 定义 使用原型实例指定创建对象的种类,并且通过克隆这些原型创建新的对象,它是一种对象创建型模式。 将一个原型对象传递给要发动创建的对象,这个要发动创建的对象通过请求原对象克隆自己来实现创建过程。本质用原型实例指定创建对象的种类,并且通过拷贝这些原型

2016-11-21 15:29:16 357

转载 抽象工厂模式

一 概念解释定义:抽象工厂模式提供一个创建一系列相关或者相互依赖的对象接口,而无须指明他们的具体类。抽象模式又称为Kit模式。是一种对象创建模式。抽象工厂模式是为创建一组对象提供了一种解决方案。与工厂方法模式相比抽象工厂模式中的具体工厂不只是创建一种产品,而是负责创建族产品。引入相关概念:1 产品等级结构:即产品的继承结构,比如抽象类是一个矩形,其子类有红色矩形,蓝色矩形,灰色矩形等。2

2016-11-20 18:49:35 711

转载 工厂方法模式

工厂方法模式 该模式又简称为工厂模式,定义一个用于创建对象的接口,让子类决定让哪一个类实例化,这样可以让产品类的实例化操作延迟到工厂子类中完成,即通过工厂子类来确定究竟应该确定实例化哪一个具体产品类。 Product 抽象产品,是工厂方法模式所创建对象的超类型,也就是产品对象的公共父类。 ConcreteProduct 具体产品,实现了抽象产品的接口,某种类型的具体产品有专门的具体工

2016-11-20 13:13:32 497

转载 简单工厂模式

简单工厂模式 定义一个工厂类,它可以根据不同的参数返回不同的实例,被创建的实例通常都有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,所以简单工厂模式又被称为静态工厂模式。 上图解释如下: Factory 工厂类,是简单工厂模式的核心,负责所有产品实例的逻辑,工厂类可以被外界外界直接调用,创建所需的产品对象,工厂类提供静态工厂方法,返回的类型为抽象产品类型Product。

2016-11-20 13:09:23 471

转载 面向对象设计的几个基本原则和单例模式

本文是根据刘伟老师《设计模式的艺术》一书和网上资料整理而成,仅供学习交流之用。一 设计原则 1 单一职责原则:一个类只负责一个功能领域中的相应职责,或者说一个类只有一个引起它变化的原因,简单来说就是一个类不能承担太多的职责。2 开闭原则:一个软件实体应当对扩展开放,对修改关闭,即软件实体尽量在不修改原有代码的情况下进行扩展。3 里氏代换:所有引用基类的地方必须能透明的使用其子类的对象。在软件中将一

2016-11-17 21:28:30 1324

空空如也

请问mysql-connector-python和的问题

2015-09-16

win8如何将磁盘管理器的黑色分区变为绿色的

2015-09-16

安装了mysqlconector 后然无法引入

2015-09-15

python和mysql连接数据库的问题

2015-09-15

在Python虚拟环境中使用环境外的mysql

2015-09-01

win8系统使用mysql出现Access denied

2015-09-01

win8安装mysql该选择哪个版本

2015-08-30

安装win8和Ubuntu双系统提示分区不可用

2015-08-28

virtualbox + vagrant如何配置ssh

2015-08-28

win8安装virtualbox后无法上网了

2015-08-27

Python出现了一个异常卡在那里不动了

2015-08-25

用npm安装package.json时出现错误

2015-08-24

npm安装package.json时repository为空

2015-08-23

安装npm install时出现错误

2015-08-23

用offsetLeft为什么输出的是0

2015-08-22

JavaScript如何设置画一个圆的背景色

2015-08-21

JavaScript做了个弹出层的form ,请问如何关闭form

2015-08-21

div中如何设置table表格图片不超过边框

2015-08-20

两个一体机如何用HDMI高清传输线连在一起呢

2015-08-19

github提交的问题,无法更新到远端的master

2015-08-18

Linux下进程是如何实现的?

2016-09-25

c++指针做参数,如何修改参数指向的内容

2016-08-16

请问vector不能这样写吗?

2016-08-14

new与delete的应用场景是什么?

2016-08-06

如何写linux分布式程序

2016-07-23

linux如何向红外串口写命令?

2016-07-09

请问C++在ubuntu下的socket编程有没有常连接的问题?

2016-06-27

为什么这个char*可以修改?

2016-06-24

ubuntu系统中路径的变量名有个符号‘$’表示什么意思?

2016-06-13

ubuntu系统键盘输入出现异常

2016-06-03

c++语法 ss << "hello world " << count 如何理解

2016-06-02

请问C++这样写是什么意思?

2016-04-25

ubuntu14.04安装mongodb出现问题

2016-03-19

python 压缩文件的几个问题

2015-12-12

请问如何用python urllib2下载doc文件

2015-12-06

请问写python爬虫如何用urllib或者requests模拟用户登录

2015-11-30

请问如何将主机的文件与VMware里的虚拟机共享

2015-09-20

请问centos中是如何配置网关的

2015-09-19

WinXP attackor虚拟机开机需要密码

2015-09-18

是不是所有的系统整型字节数都是4

2015-09-17

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

TA关注的人

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