Java设计模式-外观模式

外观模式又称为门面模式(Facade模式),在23种设计模式中被称为结构型模式。结构型模式分为结构型类模式和结构型对象模式,外观模式属于结构型对象模式。结构型类模式是采用继承机制来组合接口和实现,而结构型对象模式则是描述了如何对一些对象进行组合。在介绍适配器模式时,适配器模式分为类适配器和对象适配器,恰好是典型的两种结构型模式的体现。 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外 [...]

浅谈ContentProvider

ContentProvider即内容提供者,它是Android系统中提供的专门用于不同应用间进行数据共享的组件。ContentProvider提供了一套标准的接口来获取及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查,而无须担心直接开放数据库权限而带来的安全问题。系统预置了许多ContentProvider用于获取用户数据,比如消息、联系人、日程表等。 在以前介绍其它组件 [...]

浅谈MVP架构模式

MVP即Model-View-Presenter,它是在经典的MVC(Model-View-Controller)架构基础上延伸出来的一种架构模式。Google官方也给出了一个简单的MVP示例。 MVC与MVP MVP和MVC有很多共性,Model提供数据,View负责显示,Controller/Presenter负责逻辑的处理。 模型关系图如下: Model:定义数据的格式,这一点与 [...]

Git使用教程七

本文主要介绍4个Git命令,它们分别是stash、tag、rm和mv命令。stash用于暂存或者恢复当前工作目录的内容。tag用于创建,列出,删除或验证使用GPG签名的标签。rm用于删除Git版本库中跟踪的文件或者目录。mv命令用于移动或重命名文件,目录或符号链接。 git stash git stash命令用于将更改储藏在脏工作目录中。 git stash list [<option [...]

Git使用教程六

本文主要介绍两个git命令,它们分别是git rebase和git cherry-pick。git rebase可以改变分支的根基,假设有两个分支沿着不同的方向操作,使用rebase命令,可以将两条沿着不同方向的分支合并为一个分支,这两个分支路径会被更改为一条路径。不仅如此,git rebase还可以更改合并服务器上的提交记录,可以将已经提交到服务器的多条历史提交合并为一个提交记录。git mer [...]

Git使用教程五

本文已经是Git使用教程的第5篇文章了,接下来应该还会再介绍2篇,这样Git相关的内容暂时告一段落了,相信只要熟练使用这7篇文章涉及到的命令,已经可以满足日常开发的需要了。当然了关于Git的使用还有许多内容,包括许多的底层命令和高级命令,还有结合gerrit搭建等等,这些内容后续有时间会再整理一些。 在本文中,重点介绍Git中操作远程仓库3个相关命令,它们分别是fetch、pull和push。在 [...]

Git使用教程四

本文重点介绍Git分支协作的相关命令,Git一个很重要的特性就是允许在不同的分支上协同操作,然后再进行分支合并。分支合并依赖两个常用命令merge和rebase,在本文主要介绍merge命令的使用,需要知道如何使用merge命令进行分支合并,并且需要掌握merge出现冲突时的解决方式,包括如何回退本次merge到之前的状态。然后介绍了diff命令的使用,需要了解如何查看工作区和暂存区文件的差异,工 [...]

Git使用教程三

人生没有回头路,生命不会给谁第二次选择的机会,一瞬间的犹豫有时会完全改变一个人以后的一生。正因如此,所以人生脚下的每一步才需要倍感珍惜。 如果使用Git则不同了,Git不仅可以让你回到过去,而且还可以从过去回到那个你曾经到过的未来,简直是开挂的存在。Git的上面的能力,来自于两个命令reset和checkout,本文重点就是介绍这两个命令的使用,而且reset和checkout两个命令也是需要熟 [...]

Git使用教程二

本文继续记录Git的使用,重点介绍3个命令,它们分别是git add,git commit,git branch。针对每一个命令的使用,在文中都会借助于具体的操作示例演示一下。文中所介绍的3个命令,是非常基础也是经常使用的命令,不需要刻意去记忆,平常使用多了自然就记住了。 git add git add命令时将工作区内容添加到索引index,或者说将更改添加到暂存区stage,以准备下一次提交 [...]

Git使用教程一

Git是目前使用最广泛的一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。Git用于保存代码文件,保留历史纪录,可以回到过去,多端共享,团队协作。因此Git是每个程序员必须掌握的技能。 安装git后不同于java或者adb的设置,安装JDK或者Android SDK后,如果想要在命令窗口使用java或者adb命令,需要手动设置环境变量后才可以使用,但是安装Git后会 [...]

JNI编程笔记四

本文重点介绍JNI字符串部分操作,由于字符串也是对象类型,所以字符串的操作与基本数据类型是有差异的。前面介绍了JNI在操作对象类型时,必须借助于相应的函数,JNI也提供了不同的字符串操作函数。由于不同编程语言之间底层字符串存储格式不同,所以在C与Java之间操作字符串时,如果包含了中文编码,而又没有做特殊处理,直接使用JNI提供的字符串函数,这时候容易出现中文的乱码问题,那么如何解决乱码问题呢? [...]

JNI编程笔记三

在使用JNI时最重要的是Java与C/C++如何传递数据,以及数据类型之间如何映射。本文重点需要了解的是JNI中类型和签名描述符的表示方式,以及它们与Java中数据类型的对应关系。要求可以借助Java虚拟机命令生成JNI签名。最后,列举了一些一般性示例,通过示例演示了如何在Java和C之间进行数据交互,例如基本数据类型之间和数组类型之间。 由于JNI在使用C/C++与Java交互时很相似,所以后 [...]

JNI编程笔记二

在上一篇文章中着重介绍了JNI编程的书写步骤,借助于所建议的操作步骤,我们实现了一个简单的JNI调用示例。今天继续JNI介绍,重点包括JNIEnv在C/C++中的实现方式,使用关键字JNIEXPORT、JNICALL以及extern "C"语法的目的,然后是JNI函数名称的命名规范,最后是JNI中的数据类型,包括基本数据类和引用数据类型。 JNIEnv简绍 在对JNIEnv分析之前,这里先介绍 [...]

JNI编程笔记一

JNI即Java Native Interface,它允许Java与其它计算机语言的代码进行交互。在这里,我们可以简单的理解为JNI就是为了实现和C或者C++交互而存在的。 一般我们称Java中与C或者C++交互的方法为本地方法,每一个本地方法前面都有一个native的修饰符,并且方法不需要在Java层实现,只需要进行方法声明即可。本地方法与抽象方法很相似,不同的地方在于将abstract替 [...]

JNI之C++语言四

这是在JNI之前的最后一篇关于基础知识介绍的博客,从下篇开始就可以正式进入JNI的介绍篇章了。本文介绍C++中剩余的部分点,主要包括C++中的四种显式类型转换符、运算符重载以及模板。显示类型转换符以及模板是我们需要着重理解的部分,特别是模板部分,它跟Java中泛型机制很相似,在C++中也应用场景也非常多。 类型转换 在Java中如果高数据类型向低数据类型转换需要进行强制转换,,如double类 [...]
共 10 页 1 2 3 4 5 6 7 8 9 10