上一页 1 ··· 8 9 10 11 12 13 14 15 下一页
摘要: 在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 在空对象模式中,我们创建一个指定各种要执行的操作的抽象类和扩展该类的实体类, 阅读全文
posted @ 2016-06-21 20:56 嘉禾世兴 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 状态模式 在状态模式(State Pattern)中,类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。 在状态模式中,我们创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象。 介绍 意图:允许对象在内部状态发生改变时改变它的行为,对象看起来好像修改了它的类 阅读全文
posted @ 2016-06-20 22:54 嘉禾世兴 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 主要解决:一个对象状态 阅读全文
posted @ 2016-06-20 21:27 嘉禾世兴 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 介绍 意图:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。 主要解决:所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外 阅读全文
posted @ 2016-06-20 20:34 嘉禾世兴 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。 介绍 意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松 阅读全文
posted @ 2016-06-19 21:37 嘉禾世兴 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式。这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式。 介绍 意图:提供一种方法顺序访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。 主要解决: 阅读全文
posted @ 2016-06-19 21:23 嘉禾世兴 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释 阅读全文
posted @ 2016-06-19 11:25 嘉禾世兴 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 介绍 意图:将一个请求封装成一个对象,从而使您可以用不同的请求对客户进行参数化。 主 阅读全文
posted @ 2016-06-19 10:30 嘉禾世兴 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它 阅读全文
posted @ 2016-06-18 17:59 嘉禾世兴 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍 意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的 阅读全文
posted @ 2016-06-18 16:42 嘉禾世兴 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个 阅读全文
posted @ 2016-06-18 16:10 嘉禾世兴 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 介绍 意图:为子系统中 阅读全文
posted @ 2016-06-18 12:07 嘉禾世兴 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的 阅读全文
posted @ 2016-06-18 11:51 嘉禾世兴 阅读(179) 评论(0) 推荐(1) 编辑
摘要: 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 阅读全文
posted @ 2016-06-17 23:30 嘉禾世兴 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象 阅读全文
posted @ 2016-06-17 22:03 嘉禾世兴 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 我们通过下面的实例来演示桥 阅读全文
posted @ 2016-06-17 21:22 嘉禾世兴 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入 阅读全文
posted @ 2016-06-17 19:20 嘉禾世兴 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操 阅读全文
posted @ 2016-06-17 13:12 嘉禾世兴 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍 意图:将一个复杂的构建与其表示相分离,使 阅读全文
posted @ 2016-06-17 12:22 嘉禾世兴 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该 阅读全文
posted @ 2016-06-16 20:50 嘉禾世兴 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模 阅读全文
posted @ 2016-06-16 20:33 嘉禾世兴 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 介绍 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。 关键代码:创建过程在其子类执行。 应用实例 阅读全文
posted @ 2016-06-15 23:04 嘉禾世兴 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 设计模式的六大原则: * 开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想到达到这样的效果,我们需要使用接口和抽象类,后面的具体设计 阅读全文
posted @ 2016-06-15 12:57 嘉禾世兴 阅读(174) 评论(0) 推荐(0) 编辑
摘要: * autocomplete autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。 注释:autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, passw 阅读全文
posted @ 2016-06-14 22:07 嘉禾世兴 阅读(328) 评论(0) 推荐(0) 编辑
摘要: * datalist datalist 元素规定输入域的选项列表。 列表是通过 datalist 内的 option 元素创建的。 如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist 的 id: * keygen keygen 元素的作用是提供一种验证用户的可 阅读全文
posted @ 2016-06-14 21:51 嘉禾世兴 阅读(224) 评论(0) 推荐(0) 编辑
摘要: * email * url * number * range * data HTML5 拥有多个可供选取日期和时间的新输入类型: date - 选取日、月、年 month - 选取月、年 week - 选取周和年 time - 选取时间(小时和分钟) datetime - 选取时间、日、月、年(UT 阅读全文
posted @ 2016-06-14 21:45 嘉禾世兴 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新。 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。 创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL(本例中是 阅读全文
posted @ 2016-06-14 21:37 嘉禾世兴 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 什么是 Web Worker? 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。 web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。 计 阅读全文
posted @ 2016-06-14 21:32 嘉禾世兴 阅读(181) 评论(0) 推荐(0) 编辑
摘要: HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载得更快 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 例: 如需启用应用程序缓存 阅读全文
posted @ 2016-06-14 21:25 嘉禾世兴 阅读(285) 评论(0) 推荐(0) 编辑
摘要: HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 阅读全文
posted @ 2016-06-14 21:09 嘉禾世兴 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 检测是否支持地理定位 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。 如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象 showPosition() 函数获得并显 阅读全文
posted @ 2016-06-14 21:03 嘉禾世兴 阅读(338) 评论(0) 推荐(0) 编辑
摘要: * SVG SVG 是一种使用 XML 描述 2D 图形的语言。 SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图 阅读全文
posted @ 2016-06-14 20:54 嘉禾世兴 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失 SVG 是万维网联盟的标准 SVG 的优势 与其他图像格式相比(比如 阅读全文
posted @ 2016-06-14 20:51 嘉禾世兴 阅读(408) 评论(0) 推荐(0) 编辑
摘要: 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域,您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 * 添加 canvas 元素。规定元素的 id、宽度和高度: * canvas 阅读全文
posted @ 2016-06-14 20:44 嘉禾世兴 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 效果图: 为了使元素可拖动,把 draggable 属性设置为 true : 拖动什么 - ondragstart 和 setData() drag(event),它规定了被拖动的数据。 dataTransfer.setData() 方法设置被拖数据的数据类型和值: 数据类型是 "Text",值是可 阅读全文
posted @ 2016-06-14 20:25 嘉禾世兴 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 当前,audio 元素支持三种音频格式: <audio> 标签的属性 如果出现该属性,则音频在页面加载时进行加载,并预备播放。 如果使用 "autoplay",则忽略该属性。 阅读全文
posted @ 2016-06-14 20:08 嘉禾世兴 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 效果图: 阅读全文
posted @ 2016-06-14 20:03 嘉禾世兴 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 当前,video 元素支持三种视频格式: Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件 WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件 <vi 阅读全文
posted @ 2016-06-14 19:56 嘉禾世兴 阅读(414) 评论(0) 推荐(0) 编辑
摘要: HTML5 建立的一些规则: 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立于设备 开发进程应对公众透明 HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 阅读全文
posted @ 2016-06-14 19:54 嘉禾世兴 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 步骤: 1. 把c文件后缀名换成cpp2. Android.mk文件中的hello.c也要换成hello.cpp3. c++的使用的环境变量结构体中,访问了c使用的结构体的函数指针,函数名全部都是一样的,只是参数去掉了结构体指针4. 访问函数指针时,把env前面的*号去掉,因为此时env已经是一级指 阅读全文
posted @ 2016-06-11 16:15 嘉禾世兴 阅读(540) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 下一页