设计模式
我是MTT
这个作者很懒,什么都没留下…
展开
-
设计模式3——建造者模式
设计模式3——建造者模式1 解释1.1 定义将一个复杂对象的构建与他的表示分离,使得同样的构建可以创建不同的表示。1.2 分析首先我们看看一般的实例化对象的方法,如下面代码:Roboter roboter = new Roboter(); roboter.setmArm("arm"); roboter.setmBody("原创 2014-05-21 21:20:09 · 1206 阅读 · 1 评论 -
设计模式2——抽象工厂
1 解释1.1 定义提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。1.2 分析抽象工厂类似工厂模式,都有工厂类。区别在于,抽象工厂创建的是一系列的产品;而工厂方法只是创建一个产品。什么是相关和相互依赖,这个类似于产品族的概念。位于不同产品等级结构,功能相关联的产品组成的家族就是产品族。如下图,入门级中的QQ、别克、奔驰他们都有类似的功能和用途,所以他们都是原创 2014-05-14 18:08:46 · 930 阅读 · 1 评论 -
设计模式6——适配器模式
1 解释1.1 定义将一个类的接口转换成客户希望的另外一个接口。1.2 分析定义中重点是“转换”,以下的例子都体现了适配器的原理:1. 出国旅游,人民币必须兑换成外币才能正常的进行流通和使用。2. 各用电设备使用电压都不一样,需要用一个变压器提供对应的电压。3. 各国语言不一样,所以出现了翻译这么一个职业,帮助大家顺畅的沟通。2 代码分析2.1 买大米的故事原创 2014-09-23 18:08:17 · 1249 阅读 · 1 评论 -
设计模式4——单例模式
1解释1.1定义保证一个类仅有一个实例,并提供一个访问他的全局访问点。1.2分析 所有类都有构造方法,假如不对他进行编码,系统会生成空的public的构造方法,外部类就能创建这个类的对象。为了不让其他类能new出这个类的实例,所以需要写一个private的构造方法(其实即使使用private修饰,通过反射机制还是能在外部调用的)。然后再提供一个返回该类实例的函数供外部调用。原创 2014-08-24 15:03:26 · 834 阅读 · 1 评论 -
设计模式5——原型模式
1解释1.1 定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。1.2 分析 概念描述感觉不够形象,实际上就是继承一个可以拷贝属性的接口,然后通过这个接口来创建新的对象。2代码解析2.1引用和创建新对象大家看看下面这段代码,这是一个简单的创建对象的代码。Score score = new Score();Person person = n原创 2014-09-16 14:20:15 · 1157 阅读 · 1 评论 -
设计模式1——工厂方法
前言有一些奉为经典的东西,不能只看一遍,要多看,每次都能有新的认识。技术容易学会,但是思想不是一朝一夕就能参透的。设计模式对于框架设计和提高代码质量作用很大。前段时间在看设计模式方面的书籍,一段时间后发现理解不深刻,掌握也不好。所以打算对每个模式都写一篇文章,不仅可以加深认识,还能方便大家学习。以GOF的《设计模式》的内容为主,参考其他的书籍和博客,再结合自己的认识,用容易理解的语言来原创 2014-04-29 19:45:06 · 1115 阅读 · 1 评论 -
设计模式7——桥接模式
1 电视机与遥控器有两种遥控器,蓝牙与红外线。有很多品牌的电视,每种遥控器控制一种电视。根据上面的描述我们很快想到一种实现方式,将遥控器设为一个父类,不同的遥控器去继承扩展他。 简单的继承: 从上图可以看出,有2种遥控器,有3种品牌的电视,一共需要2*3=6个子类。假如遥控器种类是N,电视品牌种类是M,那么最终需要的子类是N*M。缺点:1. 这样的实现方式会使得我们的子原创 2014-12-18 21:56:06 · 1036 阅读 · 1 评论 -
设计模式8——组合模式
1.生活实例组合模式首先想到的就是树形结构,比如我们常用的文件结构,请看Windows的文件结构:无论是文件或者是文件夹,常用操作都是一致的,比如:复制、粘贴、剪切、删除、所占空间大小。我们并没有刻意的去分他是文件夹还是文件。我们可以把文件夹看成是组合对象,把每一个文件看成是单个对象。组合模式模糊了这两个概念,他使得客户端能够用简单一致的操作来操作两个不同的东西。2.定义解原创 2015-04-09 15:40:28 · 978 阅读 · 1 评论