- 博客(40)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 从Android/Java基础之上学习C/C++语言 --目录
从Android/Java基础之上学习C/C++语言总目录从Android/Java基础之上学习C/C++语言(1)–C语言基础–基本数据类型从Android/Java基础之上学习C/C++语言(2)–C语言基础–指针从Android/Java基础之上学习C/C++语言(3)–C语言基础–内存分配从Android/Java基础之上学习C/C++语言(4)–C语言基础–字符串
2017-08-27 14:30:33
653
1
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
转载 Java/Android 设计模式系列--目录
介绍 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。一个设计模式并不是能够用于代码中的,而是提供一个在不同情况下解决问题的模板示例。设计模式允许开发者用一个大家都熟知的编码方式进行交流,有利于软件的扩展性和可维护性。职责 设计模式当然也需要遵循面向对象设计的6大原则:单一职责原则 单一职责的英文名称是Single Responsib
2017-08-26 16:43:01
624
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 基于Android真实项目教你一步一步搭建架构 -- 目录
目录基于Android真实项目教你一步一步搭建架构1 – 概述 基于Android真实项目教你一步一步搭建架构2 – Google官方Mvp架构
2017-08-14 19:07:45
255
转载 AndroidStudio gradle仓库配置国内镜像,解决加载仓库慢问题
前言最近在使用Androidstudio从jcenter,google,maven等仓库下载依赖jar的时候,出现下载不了,偶尔能下载,但是很慢;这里推荐使用国内阿里的镜像仓库。阿里的镜像仓库:https://maven.aliyun.com/mvn/view官方使用指南:https://help.aliyun.com/document_detail/102512.html?spm=a2c40.aliyun_maven_repo.0.0.361830549jTnxB一,单个项目生效在项目级别的
2020-07-09 17:32:22
2219
转载 Java/Android 设计模式系列(24)--访问者模式
这篇博客我们来介绍访问者模式(Visitor Pattern),这也是[行为型设计模式]之一。访问者模式是一种将数据操作与[数据结构](http://lib.csdn.net/base/datastructure "算法与数据结构知识库")分离的设计模式,它可以算是 23 中设计模式中最复杂
2017-08-28 12:09:04
304
转载 Java/Android 设计模式系列(23)--解释器模式
这篇博客我们来介绍一下解释器模式(Interpreter Pattern),也是[行为型设计模式]之一,是一种用的比较少的设计模式,其提供了一种解释语言的语法或表达式的方式,该模式定义了一个表达式接口,通过该接口解释一个特定的上下文。在这么多的设计模式中,解释器模式在实际运用上相对来说要少很
2017-08-28 12:08:17
303
转载 Java/Android 设计模式系列(22)--模板方法模式
这篇博客我们来介绍一下模板方法模式(Template Method Pattern),也是[行为型设计模式]之一。在面向对象开发过程中,通常会遇到这样的一个问题,我们知道一个[算法](http://lib.csdn.net/base/datastructure "算法与数据结构知识库")所需
2017-08-28 12:07:35
278
转载 Java/Android 设计模式系列(21)--备忘录模式
这篇博客我们来介绍一下备忘录模式(Memento Pattern),也是[行为型模式设计模式]之一,备忘录模式又称为快照(Snapshot Pattern)模式或者 Token 模式,该模式用于保存对象当前状态,并且在之后可以再次恢复到此状态。备忘录模式实现的方式需要保证被保存的
2017-08-28 12:06:50
254
转载 Java/Android 设计模式系列(20)--迭代器模式
我们这篇博客来介绍一下迭代器模式(Iterator Pattern),又称为游标(Cursor Pattern)模式,是[行为型设计模式]之一。迭代器模式算是一个比较古老的设计模式,其源于对容器的访问,比如 [Java]
2017-08-28 12:06:05
212
转载 Java/Android 设计模式系列(19)--状态模式
这篇博客我们来介绍一下状态模式(State Pattern),也是[行为型设计模式]之一。状态模式的行为是由状态来决定的,不同的状态下有不同的行为。状态模式和[策略模式]
2017-08-28 12:04:52
253
转载 Java/Android 设计模式系列(18)--中介者模式
这篇博客我们介绍一下中介者模式(Mediator Pattern),也是[行为型模式]之一,中介者模式也称为调解者模式或者调停者模式,顾名思义,它的作用是在若干类或者若干模块之间承当中介。 通常情况下,一个程序必然要包含大量的类,随着项目的进行,类和模块的数量必然要进一步增加,特别是当需
2017-08-27 16:30:21
352
转载 Java/Android 设计模式系列(17)--策略模式
这篇博客我们来介绍一下策略模式(Strategy Pattern,或者叫 Policy Pattern),也是[行为型模式]之一。通常在软件开发中,我们为了一个功能可能会设计多种[算法](http://lib.csdn.net/base/datastructure "算法与数据结构知识库")
2017-08-27 16:24:46
306
转载 Java/Android 设计模式系列(16)--命令模式
这篇博客我们来介绍一下命令模式(Command Pattern),它是[行为型设计模式]之一。命令模式相对于其他的设计模式更为灵活多变,我们接触比较多的命令模式个例无非就是程序菜单命令,如在[操作系统]
2017-08-27 16:18:47
264
转载 Java/Android 设计模式系列(15)--责任链模式
这篇博客我们来介绍一下责任链模式(Chain-of-responsibility Pattern),责任联模式又称为职责链模式,是[行为型设计模式]之一。顾名思义,责任链模式中存在一个链式结构,多个节点首尾相连,每个节点都可以被拆开再连接,因此,链式结构具有很好的灵活性。将这样一种结构应
2017-08-27 16:14:28
268
转载 Java/Android 设计模式系列(14)--外观模式
这篇博客来介绍外观模式(Facade Pattern),外观模式也称为门面模式,它在开发过程中运用频率非常高,尤其是第三方 SDK 基本很大概率都会使用外观模式。通过一个外观类使得整个子系统只有一个统一的高层的接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装 API 的常用手段,例如网络模块、ImageLoader 模块等。其实我们在开发过程中可能已经使用过
2017-08-27 16:10:14
310
转载 Java/Android 设计模式系列(13)--享元模式
这篇我们来介绍一下享元模式(Flyweight Pattern),Flyweight 代表轻量级的意思,享元模式是对象池的一种实现。享元模式用来尽可能减少内存使用量,它适合用于可能存在大量重复对象的场景,缓存可共享的对象,来达到对象共享和避免创建过多对象的效果,这样一来就可以提升性能,避免内存移除和频繁 GC 等。
2017-08-27 16:00:14
345
转载 Java/Android 设计模式系列(12)--组合模式
这篇我们来介绍一下组合模式(Composite Pattern),它也称为部分整体模式(Part-Whole Pattern),结构型模式之一。组合模式比较简单,它将一组相似的对象看作一个对象处理,并根据一个树状结构来组合对象,然后提供一个统一的方法去访问相应的对象,以此忽略掉对象与对象集合之间的差别。这个最典型的例子就是数据结构中的树了,如果一个节点有子节点,那么它就是枝干节点,如果没有子节点,
2017-08-27 14:32:57
264
转载 Java/Android 设计模式系列(11)--原型模式
这篇博客我们来介绍一下剩下的最后一个创建型模式:原型模式(Prototype Pattern)。该模式有一个样板实例,用户从这个样板对象中复制出一个内部属性一致的对象,这个过程在 C++ 中就是一个克隆。被复制的实例就是我们所称的“原型”,这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实例,因为这种情况下,复制一个已经存在的实例可以使程序运行效率更高。 这个模式的重点在于,客户端
2017-08-27 14:32:20
245
转载 Java/Android 设计模式系列(10)--建造者模式
这篇博客我们来介绍一下建造者模式(Builder Pattern),建造者模式又被称为生成器模式,是创造性模式之一,与工厂方法模式和抽象工厂模式不同,后两者的目的是为了实现多态性,而 Builder 模式的目的则是为了将对象的构建与展示分离。Builder 模式是一步一步创建一个复杂对象的创建型模式,它允许用户在不知道内部构建细节的情况下,可以更精细地控制对象的构造流程。一个复杂的对象有大量的组成部
2017-08-27 14:31:40
284
转载 Java/Android 设计模式系列(9)--代理模式
这篇博客我们来介绍一下代理模式(Proxy Pattern),代理模式也成为委托模式,是一个非常重要的设计模式,不少设计模式也都会有代理模式的影子。代理在我们日常生活中也很常见,比如上网时连接的代理服务器地址,更比如我们平时租房子,将找房子的过程代理给中介等等,都是代理模式在日常生活中的使用例子。 代理模式中的代理对象能够连接任何事物:一个网络连接,一个占用很多内存的大对象,一个文件,或者是一
2017-08-26 19:07:53
464
转载 Java/Android 设计模式系列(8)--桥接模式
这篇博客我们来介绍一下桥接模式(Bridge Pattern),它也是结构型设计模式之一。桥接,顾名思义,就是用来连接两个部分,使得两个部分可以互相通讯或者使用,桥接模式的作用就是为被分离了的抽象部分和实现部分搭桥。在现实生活中也有很多这样的例子,一个物品在搭配不同的配件时会产生不同的动作和结果,例如一辆赛车搭配的是硬胎或者是软胎就能够在干燥的马路上行驶,而如果要在下雨的路面行驶,就需要搭配雨胎了,
2017-08-26 19:00:19
323
转载 Java/Android 设计模式系列(7)--装饰者模式
这篇将会介绍装饰者模式(Decorator Pattern),装饰者模式也称为包装模式(Wrapper Pattern),结构型模式之一,其使用一种对客户端透明的方式来动态的扩展对象的功能,同时它也是继承关系的一种替代方案之一,但比继承更加灵活。在现实生活中也可以看到很多装饰者模式的例子,或者可以大胆的说装饰者模式无处不在,就拿一件东西来说,可以给它披上无数层不一样的外壳,但是这件东西还是这件东西,
2017-08-26 18:53:56
424
转载 Java/Android 设计模式系列(6)--适配器模式
这篇来介绍一下适配器模式(Adapter Pattern),适配器模式在开发中使用的频率也是很高的,像 ListView 和 RecyclerView 的 Adapter 等都是使用的适配器模式。在我们的实际生活中也有很多类似于适配器的例子,比如香港的插座和大陆的插座就是两种格式的,为了能够成功适配,一般会在中间加上一个电源适配器,形如: 这样就能够将原来不符合的现有系统和目标系统通过适配
2017-08-26 18:48:55
281
转载 Java/Android 设计模式系列(5)--对象池模式
这次要介绍一下对象池模式(Object Pool Pattern),这个模式为常见 23 种设计模式之外的设计模式,介绍的初衷主要是在平时的 Android 开发中经常会看到,比如 ThreadPool 和 MessagePool 等。 在 Java 中,所有对象的内存由虚拟机管理,所以在某些情况下,需要频繁创建一些生命周期很短使用完之后就可以立即销毁,但是数量很大的对象集合,那么此时 GC
2017-08-26 18:12:03
357
转载 Java/Android 设计模式系列(4)--抽象工厂模式
再来介绍一下抽象工厂模式(Abstact Factory Pattern),也是创建型模式之一,上篇博客主要介绍了工厂方法模式。抽象工厂模式和工厂方法模式稍有区别。工厂方法模式中工厂类生产出来的产品都是具体的,也就是说每个工厂都会生产某一种具体的产品,但是如果工厂类中所生产出来的产品是多种多样的,工厂方法模式也就不再适用了,就要使用抽象工厂模式了。 抽象工厂模式的起源或者最早的应用,是对不同操
2017-08-26 17:45:36
307
转载 Java/Android 设计模式系列(3)--工厂方法模式
这篇来介绍一下工厂方法模式(Factory Method Pattern),在实际开发过程中我们都习惯于直接使用 new 关键字用来创建一个对象,可是有时候对象的创造需要一系列的步骤:你可能需要计算或取得对象的初始设置;选择生成哪个子对象实例;或在生成你需要的对象之前必须先生成一些辅助功能的对象,这个时候就需要了解该对象创建的细节,也就是说使用的地方与该对象的实现耦合在了一起,不利于扩展,为了解决这
2017-08-26 17:33:14
326
转载 Java/Android 设计模式系列(2)--观察者模式
这篇来讲一下观察者模式,观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦
2017-08-26 17:19:43
278
转载 Java/Android 设计模式系列(1)--单例模式
单例模式,这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使用的时候也会有一些坑。设计模式总目录 Java/Android 设计模式系列–目录特点 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 单例模式的使用很广泛,比如:线程池(threadpool)、缓存(cache)、对话框、处理偏好设置、和
2017-08-26 17:07:42
365
原创 基于Android真实项目教你一步一步搭建架构2 -- Google官方Mvp架构
前言笔者上一篇文章说过,上家公司的项目架构是在Google官方todo-mvp-Rxjava的Demo架构基础上进行搭建的,而这个todo-mvp-Rxjava架构是基于todo-mvp加入rxjava搭建的,所以我们还是先来看下Android-architecture项目的todo-mvp分支 官方todo-mvp地址todo-mvp项目结构todo-mvp主要使用了mvp架构来实现(如果你对
2017-08-14 18:57:06
398
原创 Java版常见数据结构与算法1 -- 数据结构 --线性表
前言 数据结构是以某种形式将数据组织在一起的集合,它不仅存储数据,还支持访问和处理数据的操作。 算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。 下面是自己整理的Java版常见数据结构与算法相关内容,数据结构和算法可复杂可多了,我介绍的是常见的哦,如有错误,欢迎指出。为了便于描述,文中涉及到的代码部分都是用Java语言编写的,其实Java本身对常见的几种数据结构,线性表
2017-08-13 20:31:58
368
原创 基于Android真实项目教你一步一步搭建架构1 -- 概述
前言这篇可不是干货篇,这是概述篇,其实也可以说是预告篇。笔者最近看到不少人讨论 Google 推的 Android Architecture Components,这是Google推出的一个新的项目架构。有些人讨论说,不会吧,又来一个,我还没把Google官方的MVP架构用在真实项目上呢。笔者正是因为这个原因,决定基于上家公司的真实项目,将项目的架构都提取出来,教你如何一步一步搭建一个实战的项目架构
2017-08-13 19:59:33
948
原创 从Android/Java基础之上学习C/C++语言(8)--C语言基础--预编译
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-13 17:17:13
625
原创 从Android/Java基础之上学习C/C++语言(7)--C语言基础--IO
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 18:05:04
343
原创 从Android/Java基础之上学习C/C++语言(6)--C语言基础--联合体与枚举
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 17:37:15
433
原创 从Android/Java基础之上学习C/C++语言(5)--C语言基础--结构体
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 17:29:04
433
原创 从Android/Java基础之上学习C/C++语言(4)--C语言基础--字符串
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 17:18:27
373
原创 从Android/Java基础之上学习C/C++语言(3)--C语言基础--内存分配
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 16:54:56
315
原创 从Android/Java基础之上学习C/C++语言(2)--C语言基础--指针
前言NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 16:36:02
393
原创 从Android/Java基础之上学习C/C++语言(1)--C语言基础--基本数据类型
NDK开发需要用到C/C++语言,为什么需要这两个语言?因为通过NDK开发能够解决Java做不到或者Java做的话效率、安全性会很低的问题。比如说视频处理(直播)、GIF的处理(需要对内存进行大量地分配和释放)、支付SDK(安全性)等。学习NDK能够大大开阔我们的视野,NDK是一些大公司都要求掌握的技术,因此很有学习的必要。 本系列介绍的是NDK开发里面会用到的C/C++语言知识,其他的知识
2017-08-11 16:11:48
466
原创 封存近三年的博客重新开启
由于一些历史原因,当年开启博客后,陆续写了35篇文章,然后就没有然后了…… 现将封存已久的博客重新开启,打算写一些系列文章,所以将之前的杂乱文章全部删除了。欢迎各位品读文章、指导指导小弟,哈哈!至于文章嘛,当然是慢慢写咯……我知道你们不会打我的
2017-08-01 15:59:30
190
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人