摘要: 概述 在软件系统中,经常面临着“某个对象”的创建工作,由于需求的变化,这个对象的具体实现经常面临着剧烈的变化,但是它却拥有比较稳定的接口。 如何隔离出这个易变对象的变化,使得系统中“其它依赖该对象的对象”不随着需求的改变而改变,这就是本章要说的Factory Method模式了。定义 “定义创建对象的接口,让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。”最初的定义出现于《设计模式》(Addison-Wesley,1994)。结构图 抽象产品Product(可以是接口或者抽象类)定义了工厂方法创建的对象的接口和产品的共性;ConcreteProduct实现了Produ... 阅读全文
posted @ 2013-12-17 10:01 Gof Lee 阅读(3019) 评论(1) 推荐(0) 编辑
摘要: 本篇和UIWebView的全屏截图,可以一起使用,先对UIWebView进行截图,然后分享到邮箱(当时做还有分享到微信、腾讯微博、新浪微博功能,这三个根据官方资料,比较容易实现,这里就不进行解说了)。 下面先列出实现邮件发送功能的源码: 1 - (void)displayMailComposerSheet 2 { 3 MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 4 5 // 设置picker的委托方法,完成之后会自动调用成功或失败的方法 6 ... 阅读全文
posted @ 2013-12-16 12:09 Gof Lee 阅读(1410) 评论(0) 推荐(0) 编辑
摘要: 项目开发中,我们可能会遇到如下的应用场景:将一篇文章,进行截屏(需要全屏截取,包括滚动部分)后,分享到新浪微博、邮箱等等。前段时间,我在应用开发中实现了该功能,代码也是从网上找到的,自己整理了一下。主要实现截屏的方法如下所示: 1 // 实现页面的截图(包含滚动部分) 2 - (NSData *)getImageFromView:(UIView *)view 3 { 4 NSData *pngImg; 5 CGFloat max, scale = 1.0; 6 CGSize viewSize = [view bounds].size; 7 8 //... 阅读全文
posted @ 2013-12-16 10:12 Gof Lee 阅读(1252) 评论(0) 推荐(0) 编辑
摘要: 概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一。它也称作静态工厂方法模式,是工厂方法模式的特殊实现。这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子。定义 “专门定义一个类来负责创建其他类的实例,被创建的实例常常具有共同的父类。” 实际上就是由一个工厂类,根据传入的参数,动态的决定创建出哪一个产品类的实例。结构图 结构图的讲解在示例中再进行说明。示例 进入代码之前,咱们先将示例的情景说明一下:在项目开发中,我们有时会遇到需要绘制各种统计图形的需求,如线形图、饼状图等等。这里,我们使用图形工厂类来负责生成线形图类、饼状图类的对象,结构图如下所... 阅读全文
posted @ 2013-12-13 13:06 Gof Lee 阅读(2976) 评论(0) 推荐(0) 编辑
摘要: 2013年6月份开始,就陆陆续续的研究了一下微信公众账号的使用,整理了一篇《关于微信公众平台的调研说明》的文档。文档从微信公众账号的注册、设置,到微信公众账号平台管理的各个部分,都进行了介绍(微信升级之后,现在微信公众账号平台的界面可能和文档中有所不同,但基本上通过这个文档,也知道怎么去使用)。2013年11月份,对微信公众账号进行认证,另外得到了9个开放的接口,现将9个接口应用过程进行小结一下,文档中的内容大部分来自于官方资料,另外加上了一些我个人应用过程中的一些理解,如有不正确的地方,欢迎大家指出。 1.语音识别 用户给您的微信公众账号发送语音消息,微信服务器会先对语音消息进行识别... 阅读全文
posted @ 2013-12-11 09:44 Gof Lee 阅读(6105) 评论(0) 推荐(1) 编辑
摘要: 定义 "将一个复杂对象的构建与它的表现分离,使得同样的构建过程可以创建不同的表现"。最初的定义出现于《设计模式》(Addison-Wesley,1994)。 看这个概念,可能感觉很是抽象,能看懂但是不知道有什么用。我们打一个比方来理解上面的定义。打比方之前,咱们先来聊聊这个设计模式是干什么用的?我们为什么要用这个模式呢?建造者模式负责将构建复杂对象的过程和它的部件解耦,也就是过程和部件的解耦。比如说汽车,是一个很复杂的对象,它有很多的部件,车轮、发动机、座椅、车门、油箱等等;它的组装过程... 阅读全文
posted @ 2013-12-10 22:25 Gof Lee 阅读(1995) 评论(2) 推荐(0) 编辑
摘要: 原型模式的定义 “使用原型实例指定创建对象的种类,并通过复制这个原型创建新的对象”。最初的定义出现于《设计模式》(Addison-Wesley,1994)。 简单来理解就是根据这个原型创建新的对象,而且不需要知道任何创建的细节。打个比方,以前生物课上面,有一个知识点叫细胞分裂,细胞在一定条件下,由一个分裂成2个,再由2个分裂成4个……,分裂出来的细胞基于原始的细胞(原型),这个原始的细胞决定了分裂出来的细胞的组成结构。这种分裂过程,可以理解为原型模式。结构图 ... 阅读全文
posted @ 2013-12-07 08:49 Gof Lee 阅读(2741) 评论(2) 推荐(2) 编辑
摘要: 个人整理的系统集成项目管理工程师考试资料,有需要的去下载(下载链接在最下面)吧。目录如下所示:第一章信息化基础知识信息与信息化政府信息化与电子政务企业资源计划(Enterprise Resource Planning,ERP)客户关系管理(Customer Relationship Management,CRM)供应链管理(Supply Chain Management,SCM)电子商务商业智能BI第二章信息系统服务管理信息系统服务管理计算机信息系统集成单位资质管理信息系统监理第三章信息系统集成专业技术知识信息系统集成简述信息系统生命周期信息系统开发方法软件需求分析与定义软件设计软件测试软.. 阅读全文
posted @ 2013-12-04 16:46 Gof Lee 阅读(949) 评论(1) 推荐(1) 编辑
摘要: 说在前面 进入正式的设计模式交流之前,扯点闲话。我们在项目开发的过程中,经常会不经意的使用一些常见的设计模式,如单例模式、工厂方法模式、观察者模式等,以前做.NET开发的时候,认真拜读了一下程杰老师的《大话设计模式》,程老师用诙谐的语言,贴近生活的示例,让我对设计模式有了一个大致的了解。转型做IOS开发后,一直想阅读一下针对IOS设计模式方面的书籍,也买了一本《Objective-C编程之道:iOS设计设计模式解析》进行学习,本系列设计模式的文章,有些内容来自这两本书籍,也有些内容来自于网络和个人学习过程的整理,算是本人对设计模式学习的笔记,大家对文章中不足的地方,欢迎提出改进的建议。定义 . 阅读全文
posted @ 2013-12-04 14:32 Gof Lee 阅读(3111) 评论(0) 推荐(0) 编辑
摘要: 定义 一个软件实体(如类、模块、函数)应当对扩展开放,对修改关闭。定义解读 在项目开发的时候,都不能指望需求是确定不变化的,大部分情况下,需求是变化的。那么如何应对需求变化的情况?这就是开放-关闭原则要谈的。 开放-封闭原则的思想就是设计的时候,尽量让设计的类做好后就不再修改,如果有新的需求,通过新加类的方式来满足,而不去修改现有的类(代码)。那么在实际的项目开发中,是否能做到绝对的对修改关闭呢?答案一般也是否定的。既然这样,那么就要求我们在开发前,去找出变化点,然后针对变化点构造抽象,隔离出这些变化。由此可见,实现开闭原则关键是抽象。优点具有灵活性,通过拓展一个功能模块即可实现功能的扩... 阅读全文
posted @ 2013-12-03 18:28 Gof Lee 阅读(2247) 评论(0) 推荐(0) 编辑