摘要:
引言 在项目开发中,我们会遇到这样的一种场景:某些类型由于自身的逻辑,往往具有两个或多个维度的变化,比如说大话设计模式书中所说的手机,它有两个变化的维度:一是手机的品牌,可能有三星、苹果等;二是手机上的软件,可能有QQ、微信等。如何应对这种“多维度的变化”?怎样利用面向对象的技术来使得该类型能够轻松的沿着多个方向进行变化,而又不引入额外的复杂度?这就是本章桥接模式所要解决的问题。 定义 “... 阅读全文
摘要:
引言 在项目开发中,有时候会遇到这样的一种情景:需要使用以前开发的“一些现存的对象”,但是新环境中要求的接口是这些现存对象所不满足的。怎样应对这种迁移的需求?使得可以复用这些对象,以满足新的应用环境,这就是适配器(Adapter)所要解决的问题。 定义 “将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。” 最初的定义出现于《... 阅读全文
摘要:
概述 创建型模式,就是用来创建对象的模式,它抽象了对象的创建过程。本系列文章介绍了Gof设计模式中的5种创建型模式,另外对简单工厂模式也进行了介绍,下面通过一个表格来说明它们之间的关系。 名称 GoF的定义 功能描述 Singleton 保证一个类仅有一个实例,并提供一个该实例的全局访问点。 解决的是类实例化个数的问题,严格控制实体对象的数量 Simpl... 阅读全文
摘要:
概述 在前面两章中,分别介绍了简单工厂模式和工厂方法模式,我们知道简单工厂模式的优点是去除了客户端与具体产品的依赖,缺点是违反了“开放-关闭原则”;工厂方法模式克服了简单工厂模式的缺点,将产品的创建工作放到具体的工厂类,每个工厂类负责生成一个产品。但是在实际应用中,一个工厂类只创建单个产品的情况很少,一般一个工厂类会负责创建一系列相关的产品,如果我们要设计这样的系统,工厂方法模式显然不能满足应... 阅读全文
摘要:
本篇小结是在2011年时候总结的,当时做一个产品的跨浏览器兼容工作,由于产品开发的时间比较早,最开始只能在IE下面(IE 8、IE 9还有点点问题)使用,做跨浏览器兼容工作的时候,主要是适配IE 6--IE 9、Safari、FireFox、Chrome,引入了jQuery框架进行改造后,大部分功能可以正常使用,现将总结分享一下。 1.eval(idName) 【问题描述】:IE、safa... 阅读全文
摘要:
概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。 如何隔离出这个易变对象的变化,使得系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是本章要说的Factory Method模式了。 定义 “定义创建对象的接口,让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。” 最初的... 阅读全文
摘要:
本篇和UIWebView的全屏截图,可以一起使用,先对UIWebView进行截图,然后分享到邮箱(当时做还有分享到微信、腾讯微博、新浪微博功能,这三个根据官方资料,比较容易实现,这里就不进行解说了)。 下面先列出实现邮件发送功能的源码: 1 - (void)displayMailComposerSheet 2 { 3 MFMailComposeViewController ... 阅读全文
摘要:
项目开发中,我们可能会遇到如下的应用场景:将一篇文章,进行截屏(需要全屏截取,包括滚动部分)后,分享到新浪微博、邮箱等等。前段时间,我在应用开发中实现了该功能,代码也是从网上找到的,自己整理了一下。主要实现截屏的方法如下所示: 1 // 实现页面的截图(包含滚动部分) 2 - (NSData *)getImageFromView:(UIView *)view 3 { 4 NS... 阅读全文
摘要:
概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一。它也称作静态工厂方法模式,是工厂方法模式的特殊实现。这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子。 定义 “专门定义一个类来负责创建其他类的实例,被创建的实例常常具有共同的父类。” 实际上就是由一个工厂类,根据传入的参数,动态的决定创建出哪一个产品类的实例。 结构图 结构图的讲解在示... 阅读全文
摘要:
2013年6月份开始,就陆陆续续的研究了一下微信公众账号的使用,整理了一篇《关于微信公众平台的调研说明》的文档。文档从微信公众账号的注册、设置,到微信公众账号平台管理的各个部分,都进行了介绍(微信升级之后,现在微信公众账号平台的界面可能和文档中有所不同,但基本上通过这个文档,也知道怎么去使用)。2013年11月份,对微信公众账号进行认证,另外得到了9个开放的接口,现将9个接口应用过程进行小结一... 阅读全文