设计模式
文章平均质量分 77
iPolaris
这个作者很懒,什么都没留下…
展开
-
设计模式之适配器模式
适配器在生活中是一种很常见的一种东西,在国内买个手机欧版手机,充电器的插头和国内的插座不匹配,商家会为你提供一个转接头来适配,方能正常使用。中间的转接口就可看做是适配器。适配器模式就是类似的一个过程。 充电器是说明适配器模式的一个常用的例子,在此我也来借鉴一下。将欧式插头转到中式 1 package com.cnblogs.ipolaris.adapter.test; 2原创 2013-02-01 12:11:10 · 387 阅读 · 0 评论 -
设计模式之装饰器模式
装饰器模式又叫包装器模式,用于动态的给一个对象增加一些额外的职能,取代一些情况下的继承的使用,增加灵活性。 装饰器模式主要有一下部分组成: 1) 抽象构件角色( Component):定义一个抽象接口,以规范准备接收附加责任的对象。 2) 具体构件角色 (Concrete Component):这是被装饰者,定义一个将要被装饰增加功能的类。原创 2013-02-01 12:11:13 · 395 阅读 · 0 评论 -
设计模式之单例模式
单例模式是一种简单但应用相当广泛的设计模式,保证一个类只生成一个实例,提供一个全局的接口来访问。单例模式主要有两种实现方式:饿汉式和懒汉式 饿汉式形如: 1 package com.cnblogs.ipolaris.test; 2 3 public class SingleInstance { 4 private static SingleInstance insta原创 2013-02-01 12:11:08 · 378 阅读 · 0 评论 -
设计模式之抽象工厂模式
简单工厂模式的主要解决了产品的扩展问题,而抽象工厂模式主要解决的是产品系列的问题,按照我的理解是:简单工厂模式更倾向于获取单个简单的产品,如生产一个苹果,生产一个桔子。而抽象工厂模式倾向于解决稍微复杂的一些问题,比如,我要获取一个菜单,菜单的内容有:荤菜和酒(假设每个菜单都只有这两种选择,菜单可看做是一个系列),这是我们就需要抽象工厂模式。下面我们用一个水果和肉的组合来简单的说明一下抽象设计模式。原创 2013-02-01 12:11:05 · 628 阅读 · 0 评论 -
设计模式之原型模式
原型模式应用的条件为:创建给定类的实例过程比较复杂,或比较耗时耗资源。因而原型模型主要的目的是为了提高创建对象的效率,隐藏了复杂的创建过程。原型模式还涉及到一个浅复制和深复制的问题,这问题在objective-c更常被提到,java中的说法应该是引用。浅复制只获取了复制对象的指针,与复制对象共享资源,深复制则是获取一个真正地副本对象,享有自己独立的资源。下面是一个小例子,例子中的情况并非需要原型设原创 2013-02-01 12:10:58 · 677 阅读 · 0 评论 -
设计模式之策略模式
策略模式主要定义一些列的算法,把这些算法封装成偶共同接口的单独的类,并且使他们之间可以互换。策略模式主要有下面几部分组成: 1) 算法使用环境(Context)角色:算法被引用到这里和一些其它的与环境有关的操作一起来完成任务。 2) 抽象策略(Strategy) 角色:规定了所有具体策略角色所需的接口。在 java 它通常由接口或者抽象类来实现。 3) 具体策略(Concrete Str原创 2013-02-01 12:11:15 · 373 阅读 · 0 评论 -
设计模式之享元模式
享元模式的定义为:采用一个共享类来避免大量拥有相同内容的“小类”的开销。由此看来享元模式的主要的目的还是节省资源,主要是内存资源,感觉有点像单例。 享元模式的组成部分: 1) 抽象享元角色:为具体享元角色规定了必须实现的方法,而外蕴状态就是以参数的形式通过此方法传入。在 Java 中可以由抽象类、接口来担当。 2) 具体享元角色:实现抽象角色规定的方法。如果存在内蕴状态,就负责为内蕴状态原创 2013-02-01 12:11:20 · 383 阅读 · 0 评论 -
设计模式之观察者模式
观察者模式定义了一种一对多的的依赖,当被监听者发生改变或被观察者需要通知订阅者(或观察者)时,观察者会收到通知。观察者模式有以下几部分组成。 1) 抽象目标角色(Subject):目标角色知道它的观察者,可以有任意多个观察者观察同一个目标。并且提供注册和删除观察者对象的接口。目标角色往往由抽象类或者接口来实现。 2) 抽象观察者角色(Observer):为那些在目标发生改变时需要获得通知的对象原创 2013-02-01 12:11:18 · 387 阅读 · 0 评论 -
设计模式之简单工厂模式
在《设计模式》一书中,工厂模式叫做工厂方法模式,定义为:定义创建对象的接口,让子类决定实例化哪一个类,工厂方法使得一个类的实例化延迟到其子类。 使用工厂模式的情形主要有一下几种情况: 编译时无法准确预期要创建的对象的类类想让其子类决定在运行时创建什么 简单的说,有时你会通过很多if……else来判断类生成哪种类型的对象(大多指有相同父类的子类) 比如下面的一个方法: public原创 2013-02-01 12:11:01 · 444 阅读 · 0 评论