一、关于设计模式的理解
什么是设计模式,设计模式简单的说是一套被反复使用的代码,是前人对代码设计经验的总结,要做一个比喻的话,制造一套房子,数据结构与算法是教会你怎么去制作水泥、石砖,而设计模式则是教会你怎么去构建一个房子的框架。我们使用设计模式,是为了让代码得到重用并且更容易通俗易懂,在软件开发中,设计模式不可或缺。
二、设计模式的分类
java中的设计模式分为创建型模式(5种)、结构型模式(7种)和行为型模式(11种);
创建型模式:
单例模式 --原型模式 --建造者模式--工厂模式 --抽象工厂模式
结构型模式:
适配器模式 -- 装饰模式 -- 代理模式 -- 外观模式 -- 桥接模式 -- 组合模式 -- 享元模式
行为型模式:
观察者模式 -- 中介者模式 -- 访问者模式 -- 解释器模式 -- 迭代器模式 -- 备忘录模式 -- 责任链模式 -- 状态模 式-- 策略模式 -- 命令模式 -- 模板模式
三、常用设计模式的简单理解
为了显得比较好理解,这里介绍的时候不会很官方,主要是结合安卓的例子来看的;
创建型模式之单例模式
单例模式主要用于整个应用只有一个实例,例如全局对象,当我们不想在首选项中存储数据时,就用全局变量来 存储,这样整个app都引用同一个对象;
创建型模式之原型模式
比如说修改app本地数据后,准备上传时网络中断,所以没有上传成功,这里应该还是显示原来的数据,所以使 用原型模式可以恢复到原来的数据;
创建型模式之建造者模式
这个应用的比较多,就是对一个模块进行封装,例如自己定义的同一个对话框要在不同的位置显示不同的文本, 这个时候我们将其封装,只提供文本的输入,就达到了一个代码重用的效果;
创建型模式之抽象工厂模式
定义一个用于创建对象的接口,让子类决定将哪一个类实例化,好比造车厂,造车厂可以建造很多车,你需要做什么样的车直接告诉它,复杂的流程由工厂来实现;
结构型模式之适配器模式
不同的数据提供者使用一个适配器来向一个相同的客户提供服务,例如list view中的适配器adapter;
行为型模式之观察者模式
一个对象发生改变时,所有信赖于它的对象自动做相应改变,我们可以理解为监听,类似于接口回掉,对被观察 者发生改变后,观察者做出相应的改变;
行为型模式之策略模式
定义了一系列封装了算法、行为的对象,他们可以相互替换,例如地图中起点和终点选定了却有不同的出发路 线,这也是根据算法行为封装不同的效果;