
设计模式
leehsiao
这个作者很懒,什么都没留下…
展开
-
设计模式之简单工厂模式
创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。为了使软件的结构更加清晰,外界对于这些对象只需要知道它们共同的接口,而不清楚其具体的实现细节,使整个系统的设计更加符合单一职责原则。 创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。 简单工厂模式:原创 2015-09-04 10:37:48 · 1556 阅读 · 0 评论 -
设计模式之桥接模式
模式动机: 设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案: •第一种设计方案是为每一种形状都提供一套各种颜色的版本。 •第二种设计方案是根据实际需要对形状和颜色进行组合。 对于有两个变化维度(即两个变化的原因)的系统,原创 2015-10-11 21:03:37 · 775 阅读 · 0 评论 -
设计模式之适配器模式
结构型模式的概述: 结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。 结构型模式可以分为类结构型模式和对象结构型模式: •类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。原创 2015-09-21 21:02:49 · 1595 阅读 · 0 评论 -
设计模式之创建者模式
模式动机: 无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该原创 2015-09-07 21:27:24 · 799 阅读 · 0 评论 -
设计模式之抽象工厂模式
抽象工厂的模式动机: 在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。 为了更清晰地理解抽象工厂模式,需要先引入两个概念: •产品等级结构:产品等级结构即产品的继承结构,如原创 2015-09-06 20:52:26 · 1459 阅读 · 0 评论 -
面向对象设计原则
1.单一职责原则 一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。 其英文定义为: Every object shouldhave a single responsibility, and that responsibility shouldbe entirely encapsulated by the class.原创 2015-09-01 20:54:12 · 542 阅读 · 0 评论 -
设计模式之装饰模式
一般有两种方式可以实现给一个类或对象增加行为: 1.继承机制 :使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机 2.关联机制:即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(De原创 2015-08-15 10:24:05 · 906 阅读 · 0 评论 -
设计模式之工厂方法模式
简单工厂模式的不足: 图一 在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,加入原创 2015-09-04 17:16:24 · 1271 阅读 · 0 评论 -
设计模式基础之类与类图
1.类的定义: 类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。 在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承担什么样的义务。一个类可以有多种职责,设计得好的类一般只有一种职 责,在定义类的时候,将类的职责分解成为类的属性和操作(即方法)。原创 2015-08-31 21:09:01 · 603 阅读 · 0 评论 -
设计模式之原型模式
模式动机: 在面向对象系统中,使用原型模式来复制一个对象自身,从而克隆出多个与原型对象一模一样的对象。 在软件系统中,有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创 建 出更多同类型的对象,这就是原型模式的意图所在。模式定义:原创 2015-09-09 20:39:35 · 506 阅读 · 0 评论 -
设计模式之单例模式
模式动机: 对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。 如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办原创 2015-09-08 21:39:39 · 2147 阅读 · 2 评论 -
设计模式概述
设计模式定义: 设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结,使用设计模式是为了可重用代码、让代码更容易被他人理 解、保证代码可靠性。设计模式基本要素: 设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:•模式名称(Pattern n原创 2015-09-04 10:14:44 · 410 阅读 · 0 评论 -
原型模式的浅克隆和深克隆
本文转自:http://blog.youkuaiyun.com/liu_yujie2011com/article/details/40510567一、是什么? 浅拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量只复制引用,不复制引用的对象 深拷贝:对值类型的成员变量进行值的复制,对引用类型的成员变量也进行引用对象的复制 内部机制:转载 2015-09-09 21:28:55 · 582 阅读 · 0 评论 -
设计模式之组合模式
模式动机: 对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象,如子文件夹和文件)并调用执行。(递归调用) 由于容器对象和叶子对象在功能上的区别,在使用这些对象的客户端代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下客户端希望一致地处理它们,因为对于这些对象的区原创 2015-10-26 21:49:02 · 1931 阅读 · 0 评论