设计模式是面向对象程序编程的重要学习内容。设计模式的应用对于面向对象编程来说相当于经验,能够复用代码同时安全可靠。本文介绍工厂模式、策略模式和适配器模式。

工厂模式包括简单工厂模式,工厂方法模式和抽象工厂模式。

简单工厂模式:是根据模型或标签(参数)选择生产不同的产品。表现在一个工厂生产多种产品。

工厂方法模式:是在简单工厂模式上进化而来的。表现在有多个工厂,每个工厂生产一种产品。

抽象工厂模式:和工厂方法模型类似。但是每个工厂此时生产一类产品,可能包括多种产品。

策略模式:所谓的策略模式书上说用在算法封装等。首先将算法封装成一个抽象类,继承抽象类可以有不同的实现。其他类怎么引用呢?其他类拥有抽象类对象,利用指针、或标签、模板初始化设置不同的算法实现。

适配器模式:大家平时用的 各种充电器 又叫作电源适配器, 作用就是 把一定范围的电压变成 被充电设备的充电电压,比如大家可以看看 手机充电器  一般上面会写  input  110v ~ 220V  output 3.7V 或者 4.2V.  也就是说家里常用的交流电都可以通过电源适配器对手机充电。  那么反映在程序中,咱们的适配器是啥意思呢。 比如有一套老的接口 返回的数据是 xml格式,但是 新的 ui界面只能支持json数据结构,而且大部分新的接口都是json的格式返回数据。那么为了兼容老的接口,就需要来个特定的类或者特定的方法(具体是创建类还是创建到公共方法 根据具体需要灵活掌握) 将xml解析后 转换成json结构,这样ui界面呢的解析方式不用变 ,老接口也不用变知识中间转换了一下,这就叫适配器模式。

流程图如下  当然xml转json只是一个应用场景,只要是 大类型相同、小类型并列的都可以用适配器来解决差异化。 (比如xml 和 json 都是数据结构,但是结构确各自不同。)

欢迎大家留言评论提出问题

看完领个红包再走吧,感谢支持

更多传送门已经为大家准备好

https://blog.csdn.net/yutianxin123/article/details/52447070

http://www.cnblogs.com/geek6/p/3951677.html

https://blog.csdn.net/liuxiaofan_/article/details/81988456

https://blog.csdn.net/u010388497/article/details/49537721

iOS 23 种设计模式的更多相关文章

  1. Flyweight模式_Java中23种设计模式

    —————————— ASP.Net+Android+IOS开发..Net培训.期待与您交流! —————————— 享元模式: Flyweight模式的有效性很大程度上取决于如何使用它以及在何处使用 ...

  2. Java开发中的23种设计模式详解

    [放弃了原文访问者模式的Demo,自己写了一个新使用场景的Demo,加上了自己的理解] [源码地址:https://github.com/leon66666/DesignPattern] 一.设计模式 ...

  3. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  4. Java开发中的23种设计模式(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  5. c#中的23种设计模式

    C# 23种设计模式汇总 创建型模式 工厂方法(Factory Method) 在工厂方法模式中,工厂方法用来创建客户所需要的产品,同时还向客户隐藏了哪种具体产品类将被实例化这一细节.工厂方法模式的核 ...

  6. Java 23种设计模式

    转自: http://zz563143188.iteye.com/blog/1847029 ; i<count; i++){ list.add(new MailSender()); } } pu ...

  7. 从追MM谈Java的23种设计模式(转)

    从追MM谈Java的23种设计模式    这个是从某个文章转载过来的.但是忘了原文链接.如果知道的,我追加一下. 1.FACTORY-追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西 ...

  8. java 23种设计模式及具体例子 收藏有时间慢慢看

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性. 毫无疑问,设计模式 ...

  9. JAVA:23种设计模式详解(转)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

随机推荐

  1. log4net保存到数据库系列三、代码中xml配置log4net

    园子里面有很多关于log4net保存到数据库的帖子,但是要动手操作还是比较不易,从头开始学习log4net数据库日志一.WebConfig中配置log4net 一.WebConfig中配置log4ne ...

  2. External Table

    CREATE TABLE AS SELECT,使用Oracle9i的External Table  Oracle 9i 的一项新特性就是 External Table,它就象通常的数据库表一样,拥有字 ...

  3. 总结——visibility和display

    最近工作中用到了显示和隐藏——visibility和display,它们两个都有显示隐藏的意思,但是又有所差别,接下来我们先看一下效果吧. 当没有效果的时候,我们展示一下源码 <!DOCTYPE ...

  4. 根据不同的分辨率选择不同的css文件

    <SCRIPT language=javascript> <!-- Begin if (screen.width == 640) { document.write('<link ...

  5. MVC System.Web.Mvc.ModelClientValidationRule”同时存在

    错误 2280 类型“System.Web.Mvc.ModelClientValidationRule”同时存在于“C:\Program Files\Microsoft ASP.NET\ASP.NET ...

  6. iOS 高阶

    1.UIStoryBoard 2. segue跳转传值 3. UIColor配色 //1. 十进制配色 [UIColor colorWithRed:163.0/255.0 green:148.0/25 ...

  7. 使用struct实现面向对象编程的封装

    虽然C是面向过程的语言,但是这不代表C不能使用面向对象的思想,本质上说语言只是一种手段而已,一种外在的表现形式,支持面向对象的语言只是通过设计的特定的关键字更好的表现了面向对象编程而已.C中也可以使用 ...

  8. Viewport Resizer下载 谷歌前端自适应开发工具

    原文链接:http://www.phpbiji.cn/article/index/id/107/cid/6.html Viewport Resizer下载 谷歌前端自适应开发工具 在前端开发过程中,随 ...

  9. matlab之图像处理(2)

    diagram = imread('lena1.png') diagram = rgb2gray(diagram);%------------------------------将图片转换为灰度图 N ...

  10. 获取iOS设备信息的编程接口

    参考资料: [1] 博客园,iOS屏幕尺寸和分辨率了解 [2] 张兴业,获取手机信息(UIDevice.NSBundle.NSLocale), CSDN