摘要: 在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。 介绍 意图:为其他对象提供一种代理以控制对这个对象的访问。 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的 阅读全文
posted @ 2016-06-18 16:42 嘉禾世兴 阅读(251) 评论(0) 推荐(0)
摘要: 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。我们将通过创建 5 个对象来画出 20 个 阅读全文
posted @ 2016-06-18 16:10 嘉禾世兴 阅读(189) 评论(0) 推荐(0)
摘要: 外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。 这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 介绍 意图:为子系统中 阅读全文
posted @ 2016-06-18 12:07 嘉禾世兴 阅读(267) 评论(0) 推荐(0)
摘要: 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。 这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 我们通过下面的实例来演示装饰器模式的 阅读全文
posted @ 2016-06-18 11:51 嘉禾世兴 阅读(185) 评论(0) 推荐(1)
摘要: 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 阅读全文
posted @ 2016-06-17 23:30 嘉禾世兴 阅读(286) 评论(0) 推荐(0)
摘要: 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现 我们将创建一个 Person 对象 阅读全文
posted @ 2016-06-17 22:03 嘉禾世兴 阅读(367) 评论(0) 推荐(0)
摘要: 桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。 这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。 我们通过下面的实例来演示桥 阅读全文
posted @ 2016-06-17 21:22 嘉禾世兴 阅读(212) 评论(0) 推荐(0)
摘要: 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入 阅读全文
posted @ 2016-06-17 19:20 嘉禾世兴 阅读(208) 评论(0) 推荐(0)
摘要: 原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操 阅读全文
posted @ 2016-06-17 13:12 嘉禾世兴 阅读(210) 评论(0) 推荐(0)
摘要: 建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。 介绍 意图:将一个复杂的构建与其表示相分离,使 阅读全文
posted @ 2016-06-17 12:22 嘉禾世兴 阅读(213) 评论(0) 推荐(0)
摘要: 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该 阅读全文
posted @ 2016-06-16 20:50 嘉禾世兴 阅读(252) 评论(0) 推荐(0)
摘要: 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模 阅读全文
posted @ 2016-06-16 20:33 嘉禾世兴 阅读(282) 评论(0) 推荐(0)
摘要: 介绍 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。 关键代码:创建过程在其子类执行。 应用实例 阅读全文
posted @ 2016-06-15 23:04 嘉禾世兴 阅读(289) 评论(0) 推荐(0)
摘要: 设计模式的六大原则: * 开闭原则(Open Close Principle) 开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想到达到这样的效果,我们需要使用接口和抽象类,后面的具体设计 阅读全文
posted @ 2016-06-15 12:57 嘉禾世兴 阅读(183) 评论(0) 推荐(0)
摘要: * autocomplete autocomplete 属性规定 form 或 input 域应该拥有自动完成功能。 注释:autocomplete 适用于 <form> 标签,以及以下类型的 <input> 标签:text, search, url, telephone, email, passw 阅读全文
posted @ 2016-06-14 22:07 嘉禾世兴 阅读(342) 评论(0) 推荐(0)
摘要: * datalist datalist 元素规定输入域的选项列表。 列表是通过 datalist 内的 option 元素创建的。 如需把 datalist 绑定到输入域,请用输入域的 list 属性引用 datalist 的 id: * keygen keygen 元素的作用是提供一种验证用户的可 阅读全文
posted @ 2016-06-14 21:51 嘉禾世兴 阅读(229) 评论(0) 推荐(0)
摘要: * email * url * number * range * data HTML5 拥有多个可供选取日期和时间的新输入类型: date - 选取日、月、年 month - 选取月、年 week - 选取周和年 time - 选取时间(小时和分钟) datetime - 选取时间、日、月、年(UT 阅读全文
posted @ 2016-06-14 21:45 嘉禾世兴 阅读(272) 评论(0) 推荐(0)
摘要: Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器的更新。 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。 创建一个新的 EventSource 对象,然后规定发送更新的页面的 URL(本例中是 阅读全文
posted @ 2016-06-14 21:37 嘉禾世兴 阅读(264) 评论(0) 推荐(0)
摘要: 什么是 Web Worker? 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。 web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。 计 阅读全文
posted @ 2016-06-14 21:32 嘉禾世兴 阅读(190) 评论(0) 推荐(0)
摘要: HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载得更快 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。 例: 如需启用应用程序缓存 阅读全文
posted @ 2016-06-14 21:25 嘉禾世兴 阅读(299) 评论(0) 推荐(0)
摘要: HTML5 提供了两种在客户端存储数据的新方法: localStorage - 没有时间限制的数据存储 sessionStorage - 针对一个 session 的数据存储 之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 阅读全文
posted @ 2016-06-14 21:09 嘉禾世兴 阅读(191) 评论(0) 推荐(0)
摘要: 检测是否支持地理定位 如果支持,则运行 getCurrentPosition() 方法。如果不支持,则向用户显示一段消息。 如果getCurrentPosition()运行成功,则向参数showPosition中规定的函数返回一个coordinates对象 showPosition() 函数获得并显 阅读全文
posted @ 2016-06-14 21:03 嘉禾世兴 阅读(346) 评论(0) 推荐(0)
摘要: * SVG SVG 是一种使用 XML 描述 2D 图形的语言。 SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图 阅读全文
posted @ 2016-06-14 20:54 嘉禾世兴 阅读(169) 评论(0) 推荐(0)
摘要: 什么是SVG? SVG 指可伸缩矢量图形 (Scalable Vector Graphics) SVG 用于定义用于网络的基于矢量的图形 SVG 使用 XML 格式定义图形 SVG 图像在放大或改变尺寸的情况下其图形质量不会有损失 SVG 是万维网联盟的标准 SVG 的优势 与其他图像格式相比(比如 阅读全文
posted @ 2016-06-14 20:51 嘉禾世兴 阅读(416) 评论(0) 推荐(0)
摘要: 什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像。 画布是一个矩形区域,您可以控制其每一像素。 canvas 拥有多种绘制路径、矩形、圆形、字符以及添加图像的方法。 * 添加 canvas 元素。规定元素的 id、宽度和高度: * canvas 阅读全文
posted @ 2016-06-14 20:44 嘉禾世兴 阅读(281) 评论(0) 推荐(0)
摘要: 效果图: 为了使元素可拖动,把 draggable 属性设置为 true : 拖动什么 - ondragstart 和 setData() drag(event),它规定了被拖动的数据。 dataTransfer.setData() 方法设置被拖数据的数据类型和值: 数据类型是 "Text",值是可 阅读全文
posted @ 2016-06-14 20:25 嘉禾世兴 阅读(378) 评论(0) 推荐(0)
摘要: 当前,audio 元素支持三种音频格式: <audio> 标签的属性 如果出现该属性,则音频在页面加载时进行加载,并预备播放。 如果使用 "autoplay",则忽略该属性。 阅读全文
posted @ 2016-06-14 20:08 嘉禾世兴 阅读(268) 评论(0) 推荐(0)
摘要: 效果图: 阅读全文
posted @ 2016-06-14 20:03 嘉禾世兴 阅读(316) 评论(0) 推荐(0)
摘要: 当前,video 元素支持三种视频格式: Ogg = 带有 Theora 视频编码和 Vorbis 音频编码的 Ogg 文件 MPEG4 = 带有 H.264 视频编码和 AAC 音频编码的 MPEG 4 文件 WebM = 带有 VP8 视频编码和 Vorbis 音频编码的 WebM 文件 <vi 阅读全文
posted @ 2016-06-14 19:56 嘉禾世兴 阅读(436) 评论(0) 推荐(0)
摘要: HTML5 建立的一些规则: 新特性应该基于 HTML、CSS、DOM 以及 JavaScript。 减少对外部插件的需求(比如 Flash) 更优秀的错误处理 更多取代脚本的标记 HTML5 应该独立于设备 开发进程应对公众透明 HTML5 中的一些有趣的新特性: 用于绘画的 canvas 元素 阅读全文
posted @ 2016-06-14 19:54 嘉禾世兴 阅读(180) 评论(0) 推荐(0)
摘要: 步骤: 1. 把c文件后缀名换成cpp2. Android.mk文件中的hello.c也要换成hello.cpp3. c++的使用的环境变量结构体中,访问了c使用的结构体的函数指针,函数名全部都是一样的,只是参数去掉了结构体指针4. 访问函数指针时,把env前面的*号去掉,因为此时env已经是一级指 阅读全文
posted @ 2016-06-11 16:15 嘉禾世兴 阅读(555) 评论(0) 推荐(0)
摘要: jni的调用过程 1)安装和下载Cygwin,下载Android NDK 2)在ndk项目中JNI接口的设计 3)使用C/C++实现本地方法 4)JNI生成动态链接库.so文件 5)将动态链接库复制到java工程,在java工程中调用,运行java工程即可 NDK 1.NDK是一系列工具的集合,帮助 阅读全文
posted @ 2016-06-10 18:31 嘉禾世兴 阅读(459) 评论(0) 推荐(0)
摘要: JNI java本地开发接口 JNI 是一个协议 这个协议用来沟通java代码和外部的本地代码(c/c++). 通过这个协议,java代码就可以调用外部的c/c++代码 外部的c/c++代码也可以调用java代码 * 输出 * C调用java的hello * C的基本数据类型 char, int, 阅读全文
posted @ 2016-06-08 23:55 嘉禾世兴 阅读(421) 评论(0) 推荐(0)
摘要: * 在Internet中TCP/IP协议是使用最为广泛的通讯协议。TCP/IP是英文Transmission Control Protocol/Internet Protocol的缩写,意思是“传输控制协议/网际协议”。 * TCP/IP实际上是一组协议,它包括上百个各种功能的协议,如:远程登录、文 阅读全文
posted @ 2016-06-07 22:54 嘉禾世兴 阅读(625) 评论(0) 推荐(0)
摘要: * 每个HTTP-GET和HTTP-POST都由一系列HTTP请求头组成,这些请求头定义了客户端从服务器请求了什么,而响应则是由一系列HTTP请求数据和响应数据组成,如果请求成功则返回响应的数据。 * HTTP-GET以使用MIME类型application/x-www-form-urlencode 阅读全文
posted @ 2016-06-07 22:44 嘉禾世兴 阅读(8697) 评论(0) 推荐(1)
摘要: * WWW是以Internet作为传输媒介的一个应用系统,WWW网上基本的传输单位是Web网页。WWW的工作是基于客户机/服务器计算模型,由Web浏览器和Web服务器构成,两者之间采用超文本传输协议HTTP进行通信。 * HTTP协议时基于TCP/IP协议之上的协议,是Web浏览器和Web服务器之间 阅读全文
posted @ 2016-06-07 22:34 嘉禾世兴 阅读(221) 评论(0) 推荐(0)
摘要: 效果图: 标题和fragment联动效果已经封装好了,非常方便 配置要特别注意 阅读全文
posted @ 2016-05-30 18:40 嘉禾世兴 阅读(487) 评论(0) 推荐(0)
摘要: 需求: 输入框一旦有值,即显示删除图标;点击切换明密文按钮,可以切换 布局: 代码 阅读全文
posted @ 2016-05-27 19:56 嘉禾世兴 阅读(4721) 评论(0) 推荐(0)
摘要: 效果图 阅读全文
posted @ 2016-05-26 12:16 嘉禾世兴 阅读(301) 评论(0) 推荐(0)
摘要: 1.登录创建应用后得到id 2.在清单文件中添加权限 3.在mainactivity中添加初始化代码 4.在gradle文件中添加仓库地址 5.在另一个gradle文件中添加依赖 6.创建JavaBean,类名要和数据库的表明一致,属性名要和表中字段一致 7.增删改查 save/delete/upd 阅读全文
posted @ 2016-05-25 15:59 嘉禾世兴 阅读(4029) 评论(0) 推荐(0)