结构 说明 Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation. 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。 适用条件 迭代器模式是非常常见的设计模式之一, 适用条件很广, 需要访问聚合对象(数组、集合、列表等)的元素时, 即可使用迭代器模式。 实现 public interface IIterator { object CurrentItem... 阅读全文

结构 说明 Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language. 给定一个语言, 定义它的文法的一种表示,并定义一个解释器, 该解释器使用该表示来解释语言中的句子。 适用条件 当有一个语言需要解释执行, 并且可以将语言中的句子表示为一个抽象的表达式树时, 可以使用解释器模式。 实现 以逆波兰表示法为例, 其语法为: ex... 阅读全文

结构 说明 This pattern encapsulates a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations. 这个模式将请求封装成一个对象, 从而可以不用的请求对客户进行参数化, 对请求排队或者记录请求日志, 以及支持可以取消的操作。 适用条件 行为需要扩充, 将命令作为对象处理, 新的行为可以通过扩充子类完成; 命令需... 阅读全文

结构 说明 This pattern avoids coupling the sender of a request to its receiver by giving more than one object a chance to handle the request. It chains the receiving objects and passes the request along the chain until an object handles it. 使多个对象都有机会处理请求, 从而避免了请求的发送者与接收者之间的耦合。 将接收对象组成链, 在链上传递请求,... 阅读全文

设计模式四人帮 设计模式四人组GoF(“四人帮”,又称Gang of Four,即Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides四人)的《设计模式》,原名《Design Patterns: Elements of Reusable Object-Oriented Software》(1995年出版,出版社:Addison Wesly Longman.Inc),第一次将设计模式提升到理论高度,并将之规范化。该书提出了23种基本设计模式。时至今日,在可复用面向对象软件的发展过程中,新的设计模式仍然不断出现。 ... 阅读全文

新建 Xcode workspace 打开 Xcode , 选择 File -> New -> Workspace , 将 Workspace 命名为 Test.xcworkspace , 并选择合适的目录。 新建 Static Library 项目 选择 File -> New -> Project , 项目模板选择 Cocoa Touch Static Library , 项目名称命名为 MyLib.xcodeproj , 注意选中 Use Automatic Reference Counting 。 Xcode 会在项目中自动生成 MyLib... 阅读全文

initWithFormat 还是 stringWithFormat ? initWithFormat 是实例方法,用法如下: NSString* str = [[NSString alloc] initWithFormat:@"%@", @"Hello, world!"]; self.label.text = str; [str release]; 如果是运行在在 iOS 5.0 之前或者没有使用 ARC 的情况下, 需要手工调用 release 方法进行回收。 stringWithFormat 是类方法, 用法如下: NSString* str = [NSString s... 阅读全文

在 Ubuntu Server 上安装和配置 Apache2 + Mono 生产环境的记录。 服务器环境是 Ubuntu Server 13.04 虚拟机模式 (Virtual Machine Mode), 安装的 Mono 的版本是 3.2.1 , 最终环境如下图所示: 准备编译环境 还是老话题, 先准备 GCC 编译环境, 这样才可以从源代码编译安装所需要的软件。 首先需要安装的是基本的编译工具, 只要输入下面的命令即可: sudo apt-get install g++ gettext autoconf 接下来输入用户名和密码, 就可以自动安装必须的命令行编译工具了... 阅读全文

本文介绍如何在 Xamarin.iOS 项目中使用使用 ArcGIS Server 云端专题数据, 假设你已经准备好了 ArcGIS Client Runtime SDK for iOS 和 MonoTouch.ArcGIS 绑定项目。 ArcGIS API 提供的专题图层 (AGSFeatureLayer) 可以用来访问并编辑矢量地图数据, 它依赖于 ArcGIS 服务器专题服务 (Feature Service) , 专题服务不仅可以浏览和编辑数据, 还可以使用类似 SQL 的语法对数据进行过滤, 专题服务可以托管在 ESRI 的 ArcGIS Online 云中, 也可以部署在自... 阅读全文

ArcGIS SDK for iOS 简介 ArcGIS SDK for iOS 是 ESRI 公司针对 iOS 平台的 GIS 解决方案, 以 iOS Framework 的形式提供, 与 iOS 自带的 MapKit 相比, 提供了很多强大的地图以及分析功能, 如果你要想要在 iOS 平台上实现类似下图的应用, ArcGIS SDK for iOS 是不错的选择。 点击这里了解更多功能。 在 Xcode 项目中使用 ArcGIS SDK 下载并安装 ArcGIS SDK for iOS 在 iOS 项目中使用ArcGIS SDK for iOS, 需要有一个 E... 阅读全文

【感谢@Hacker_YHJ 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】 本文写的非常详细,因为我想为初学者建立一个意识模型,来帮助他们理解函数指针的语法和基础。如果你不讨厌事无巨细,请尽情阅读吧。 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。 函数指针和一个简单的函数 我们从一个非常简单的”Hello World“函数入手,来见识一下怎样创建一个函数指针。 #inc... 阅读全文

启动模拟器 使用 emulator -avd <name> 来启动指定的安卓模拟器, 例如, 我的电脑上配置了下列模拟器: 要启动名称为 “JB_Pad” 的模拟器, 只要输入下面的命令即可: emulator -avd JB_Pad 设置屏幕缩放 上面的命令启动的模拟器是按照配置的实际分辨率启动的, 模拟器配置的是 800x400 就启动一个 800x400 的窗口, 如果配置的是 720x1280 就会启动一个 720x1280 的窗口, 这样不仅操作起来麻烦(模拟器只能用鼠标模拟触控), 而且会占用更多的资源, 最重要的是, 通常手机都没那么大吧, 所以... 阅读全文

本博客基于 Tabler CSS 框架, 采用 Jekyll 模板引擎, 使用 Markdown 语法编写。

博客源代码及文章内容采用 AS-IS 协议发布,转载时请 AS-IS 。