设计模式
常用设计模式demo示例
VipPeterGee
不忘初衷,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
组合设计模式
一、定义 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。二、使用场景适用于想要表达部分与整体结构场景,以及希望用户忽略对象与单个对象间关系,希望统一使用组合机构中对象场合三、实例分析需求:公司有两个部门,商务部和软件部,软件部中包含java开发、js开发和android开发通过分析可知,所有人员都属于公司员工,可以将每个部门人员分别统...原创 2018-03-08 18:39:05 · 273 阅读 · 0 评论 -
代理设计模式
一、定义 为其他对象提供一种代理,以控制对该对象的访问。 二、简图 三、分类 代理模式分静态代理和动态代理两种模式 四、代码实例 需求:原告通过律师向法院进行申诉 分析: 1、静态代理实现 A:创建申诉接口IAppeal /** * 申诉接口 * @author petergee * @date 2018/3/15 */ public interface IAp...原创 2018-03-15 15:46:44 · 254 阅读 · 0 评论 -
装饰设计模式
一、定义: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 二、UML图 百度上的 三、代码实例 1、需求:采用装饰设计模式实现手机功能,并根据不同手机添加新功能 2、代码实现 A:创建功能接口IFunction,提供function方法 public interface IFunction ...原创 2018-03-16 17:42:56 · 249 阅读 · 0 评论 -
适配器模式
一、定义将一个类的接口转换成客户希望的另外一个接口。二、使用场景适用于原本由于接口不兼容不能一起工作的类可以一起工作三、代码实例需求:拿中国银行卡在美国取人民币分析:中国银行卡默认只能在中国取人民币,但是怎样从美国取人民币呢?这时我们需要借助美国银行获取,美国银行担任适配器,返还给我们人民币代码:1、创建取钱接口IWithdrawCashpublic interface IWithdrawCash...原创 2018-03-12 16:15:37 · 213 阅读 · 0 评论 -
策略设计模式
一、策略设计模式定义策略设计模式是指对一系列算法的定义,并将每一个算法封装起来,而且使他们还可以相互替换。策略设计模式让算法独立于他的客户而独立变化。二、使用情况1、 多个类只区别在表现行为不同,可以使用Strategy模式,在运行时动态选择具体要执行的行为。2、 需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其它方式来实现。3、 对客户隐藏具体策略(算法)的实现细节,彼此完全独立...原创 2018-03-06 14:02:49 · 196 阅读 · 0 评论 -
单例设计模式
单例模式是日常开发中使用比较多的设计模式一、定义一个类有且仅有一个实例,并且自行实例化向这个系统提供。二、使用场景1、log工具类2、网络请求类三、代码实例1、饿汉式/** * 饿汉式 * 特点: 线程安全但是会造成内存浪费 * * @author geqipeng * @date 2018/3/6 */ public class HungrySingleton { priv...原创 2018-03-06 15:20:32 · 190 阅读 · 0 评论 -
观察者设计模式
一、定义:观察者模式定义了对象间一对多的组合关系,以便于一个对象发生变化,其他依赖于它的对象都收到通知,并进行相应变化。二、UML图见百度图三、使用场景1、按钮的点击事件2、接口回调事件四、代码实例1、需求:产品经理发布需求,并指定程序员来做,被指定程序员收到需求2、需求分析:通过需求可知:产品经理属于被观察者,程序员为观察者,产品经理可以指定程序员,并发布需求,被指定程序员收到需求3、代码实现A...原创 2018-03-13 18:34:46 · 262 阅读 · 0 评论 -
模板设计模式
一、定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。二、使用场景1、多个类有公共方法,逻辑基本相同,但是具体实现又不同例如:Activity、Fragment基类三、UML图四、具体代码实例1、定义抽象类Programmer,创建doTemplateMethod()方法package net.edaibu.testappli...原创 2018-03-06 16:42:09 · 199 阅读 · 0 评论
分享