- 博客(74)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 MVC
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、简介 (来自维基百科) MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。MVC模式最早由Trygve Reenskaug在1978年提出[1] ,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪8
2016-02-20 14:08:03 1840
原创 桥接模式——多对多的连接
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 将抽象部分与实现部分分离,使它们都可以独立的进行变化。二、使用场景 (1)任何多维度变化类或者说多个树状类之间的耦合都可以使用桥接模式来实现解耦; (2)如果一个系统需要在构件的抽象角色和具体化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,可以通过桥接模式使它们在抽象层建立一个关联关系; (3)对于那些不希望使用
2016-02-19 16:13:41 448
原创 外观模式——统一编程接口
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式(Facade模式)提供一个高层次的接口,使得子系统更易于使用。二、使用场景 (1)为一个复杂子系统提供一个简单接口。子系统往往因为不断演化而变得越来越复杂,甚至可能被替换掉。大多数模式使用时都会产生更多、更小的类,在这使子系统更具可重复性的同时也更容易对子系统进行
2016-02-18 13:56:13 499
原创 享元模式——对象共享,避免创建多对象
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 使用共享对象可有效的支持大量的细粒度的对象。二、使用场景 (1)系统中存在大量的相似对象; (2)细粒度的对象都具备较接近的外部状态,而且内部状态与环境无关,也就是说对象没有特定身份; (3)需要缓冲池的场景三、简单示例 比如说回家买火车票,从北京到青岛短时间内有1万用户买票,那么北京到青岛的车票对象就会被创建1万次,当数据返回
2016-02-17 12:03:39 402
原创 装饰模式
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 动态的给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 比如,女人穿衣服,每天换着各种不同的衣服,但是不管穿成什么样,她还是她,其本质是不变的。二、使用场景 需要透明且动态的扩展类的功能时。三、装饰模式的通用代码/** * 抽象组件类:可以为一个接口或抽象类,其充当的就是被装饰的原始对象 */pub
2016-02-16 11:44:20 352 1
转载 Android RecyclerView 使用完全解析 体验艺术般的控件
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/45059587; 本文出自:【张鸿洋的博客】概述RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生,例如:ListV
2016-02-15 13:29:52 336
原创 适配器模式——媒婆
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 比如,最常见的ListView,需要使用Adapter来将数据和View绑定在一起。二、使用场景 (1)系统需要使用现有的类,而此类的接口不符合系统的需要,即接口不兼容; (2)想要建立一个可以重复使用的类,用于
2016-02-15 12:28:05 287
原创 组合模式——物以类聚
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 将对象组合呈树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 比如,总公司下设总公司行政部、总公司研发部和子公司,而子公司又下设子公司行政部和子公司研发部。二、使用场景 (1)表示对象的部分-整体层次结构时; (2)从一个整体中能够独立出部分模块或功能的场景。三、组合模式的通用模式代码 1、
2016-02-14 12:46:27 314
转载 Android Studio酷炫插件(一)——自动化快速实现Parcelable接口序列化
转载自KrocLin: http://blog.csdn.net/kroclin/article/details/40902721(有些好东西并不是没有,而是我们根本没有想到。偶然看到这篇文章,遂与大家分享,插件亲测非常好用)一、前言 相信数据序列化大家都多多少少有接触到,比如自定义了一个实体类,需要在activity之间传输该类对象,就需要将数据序列化。android中实现方式有两种,第一、实
2016-02-13 17:21:04 1127
转载 Android AutoLayout全新的适配方式 堪称适配终结者
转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/49990941; 本文出自:【张鸿洋的博客】一、概述相信Android的开发者对于设配问题都比较苦恼,Google官方虽然给出了一系列的建议,但是想要单纯使用这些建议将设备很轻松的做好,还是相当困难的。个人也比较关注适配的问题,之前也发了几篇关于适配的文章,大致有:Andr
2016-02-13 16:41:12 877
原创 代理模式
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 为其他对象提供一种代理以控制对这个对象的访问。 比如,代理上网。二、使用场景 当无法或不想直接访问某个对象或访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端使用的透明性,委托对象与代理对象需要实现相同的接口。三、代理模式的通用模式代码package com.proxy.pattern;/** * 抽象主题类:主
2016-02-13 13:36:39 282
原创 Android屏幕适配全攻略
(来自慕课网凯子哥讲课内容) http://www.imooc.com/learn/484一、为什么进行屏幕是适配 因为Android系统的开放性,导致了Android设备的多样性。 这是国外网站统计的数据(截止2014,现在也没更新。不用翻墙): http://opensignal.com/reports/2014/android-fragmentation/ 下面是来自友盟官网的截图:
2016-02-13 12:21:21 449
原创 中介者模式——调停者
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 中介者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。中介者模式将多对多的相互作用转化为一对多的相互作用。中介者模式将对象的行为 和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理
2016-02-12 14:34:09 511
原创 Android中的WebView常用用法
(来自慕课网的和网上资源的整合笔记)nate老师讲课内容: http://www.imooc.com/learn/268 smile浅笑老师讲课内容: http://www.imooc.com/video/2269 Android获取手机中外置内存卡、内置内存卡、手机内存路径: http://www.open-open.com/code/view/1433585940578 androi
2016-02-11 19:48:47 498
原创 访问者模式——数据操作与数据结构分离
(《设计模式解析与实战——何红辉,关爱民》读书笔记)大多数情况下,你并不需要使用访问者模式,但是当你一旦需要使用它时,那你就是真的需要它了。一、定义 封装一些作用于某种数据结构中的各元素的操作,它可以在不改变这个数据结构的前提下定义作用于这些元素的新的操作。二、使用场景 (1)对象结构比较稳定,但经常需要在此对象结构上定义新的操作; (2)需要对一个对象结构中的对象进行很多不同的并且不相关的操
2016-02-11 12:05:10 1030
转载 Android 属性动画(Property Animation) 完全解析 (下)
转载请标明出处(鸿洋): http://blog.csdn.net/lmj623565791/article/details/38092093(鸿洋大神地址)上一篇Android 属性动画(Property Animation) 完全解析 (上)已经基本展示了属性动画的核心用法: ObjectAnimator实现动画,ValueAnimator实现动画,AnimatorSet的使用等~ 当然了
2016-02-10 16:50:44 304
转载 Android 属性动画(Property Animation) 完全解析 (上)
转载请标明出处(鸿洋): http://blog.csdn.net/lmj623565791/article/details/380674751、概述 Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定
2016-02-10 16:38:18 284
原创 模板方法模式——封装固定流程
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。 比如,生产线的流程,做物理题的固定思路、格式。二、使用场景 (1)多个子类有公有的方法,并且逻辑基本相同时; (2)重要、复杂的算法,可以把核心算法设计为模板方法,周边的相关细节功能则由各个子类实现; (3)
2016-02-10 10:50:16 690
原创 ViewPager的简单使用
(来自慕课网鸿洋大神的讲课内容)这里只说明ViewPager3.0以上版本的官方方法首先编写布局,很简单:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.an
2016-02-09 14:31:47 337
原创 Android studio设置requestWindowFeature(Window.FEATURE_NO_TITLE);出错
(1.5版本,其他版本未测试) 在 setContentView(R.layout.activity_main);之前设置requestWindowFeature(Window.FEATURE_NO_TITLE);会发现无法运行项目,其实细心点会发现,AS中的Activity继承自AppCompatActivity,打开Styles文件: <!-- Base application theme.
2016-02-09 14:03:00 3109
原创 Androd studio调整为护眼色
虽然Android studio自带了黑色主题,但我相信很多人和我一样不喜欢那种黑色压抑的感觉吧。具体方法(我的是1.5正式版): setting—>Editor—>Color&Fronts—>General—>Default text 然后勾选右边Background,调整护眼色参数 点击Choose,然后OK。这样既明亮又不刺眼。当然想要保护好眼,还是养成良好的习惯。
2016-02-09 11:48:05 4327
原创 迭代器模式——解决问题的第三者
(《设计模式解析与实战——何红辉,关爱民》读书笔记)这个模式对开发者来说几乎不会自己去实现一个迭代器。所以对于这个模式更多的是在于理会其思想,而非应用。一、定义 提供一种方法顺序访问一个容器对象中的各个元素,而又不需要暴露该对象的内部表示。二、使用场景 遍历一个容器对象三、迭代器模式的通用模式代码/** * 迭代器接口:负责定义、访问和遍历元素的接口 * * @param <T> */
2016-02-09 11:05:02 466
原创 备忘录模式——编程中的后悔药
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 在不破坏封闭的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样就可将该对象恢复到原先保存的状态。 比如,游戏的存档功能;Android中的onSaveInstanceState和onRestoreInstanceState;重做、撤销功能。二、使用场景 (1)需要保存一个对象在某一时刻的状态或部分状态; (2)如果
2016-02-08 12:12:02 346
原创 观察者模式——解耦的钥匙
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 定义对象间同一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 比如。手机UI具有易变性,但业务逻辑基本变化不大,所以UI层需要与具体的业务逻辑解耦。二、使用场景 (1) 关联行为场景,关联行为是可拆分的,而不是组合关系; (2) 事件多级触发场景;
2016-02-07 16:24:16 649
原创 命令模式——让程序畅通执行
一、定义 将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。 比如说一键装机,用户只需要动一下鼠标,它就会执行下载,装机等一系列过程。二、使用场景 (1)需要抽象出待执行的动作,然后以参数的形式提出来——类似于过程设计中的回调机制,而命令模式正是回调机制的一个面向对象的替代品; (2)在不同的时刻指定、排列和执行请求。一个命令
2016-02-06 12:36:27 378
原创 Android studio 没有SDK location设置选项
这个问题很奇怪,SDK location设置选项莫名其妙就没了,所以无法创建Android项目了,网上找了很久也没找到方法,最终通过以下方法解决了。 找到C:\Users\Administrator这个目录,删除以下文件 这两个文件会保存所有的配置信息,卸载时也不会去掉,下次安装时还会加载之前的配置信息。而不是像安装新软件时以引导的方式设置选项,之前的问题会依旧遗留下来。删除后,重启Andr
2016-02-05 13:47:40 6915
原创 解释器模式——化繁为简
(《设计模式解析与实战——何红辉,关爱民》读书笔记)这种模式并不多见,因为我们平时不需要去创造一条语法规则。所以对于大部分人来说,只需要知道其思想即可。一、定义 给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。 比如,给定一个语言(汉语),定义它的一种文法(主谓宾),然后定义一个解释器(翻译机,用来翻译汉语)。在计算机中,计算机可以实现四则运算,其实
2016-02-05 11:33:04 438
原创 责任链模式——使编程更有灵活性
(《设计模式解析与实战——何红辉,关爱民》读书笔记)一、定义 使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条线,并沿着这条链传递该请求,直到有对象处理它为止。 这类似于力的传递一样,一环套一环。 二、使用场景 (1)多个对象可以处理同一请求,但具体由哪个对象处理则在运行时动态决定; (2)在请求处理者不明确的情况下向多个对象中的一个提交一个请求
2016-02-04 10:20:16 332
原创 状态模式——随遇而安
(《设计模式解析与实战》读书笔记)一、定义 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。也就是说行为由状态决定,不同的状态下有不同的行为。 二、使用场景 (1)一个对象的行为取决于它的状态,并且它必须在运行时根据状态改变它的行为; (2)代码中包含大量与对象状态有关的条件语句。例如,一个操作中含有庞大的多分支语句,且这些分支依赖于该对象的状态。 三、简单示例
2016-02-03 17:13:36 290
原创 策略模式
(《设计模式解析与实战》读书笔记)一、定义 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们之间可以相互替换。策略模式让算法独立于使用它的客户而独立变化。 二、使用场景 (1)针对同一类型问题的多种处理方式,仅仅是具体行为有差别时; (2)需要安全的封装多种同一类型的操作时; (3)出现同一抽象类有多个子类,而又需要使用if-else或者switch-case来选择具体子类时
2016-02-02 14:56:09 207
原创 抽象工厂模式
抽象工厂模式 (《设计模式解析与实战》读书笔记)一、定义 为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定它们的具体类。 二、使用场景 一个对象族有相同的约束。 举个例子:奔驰和奥迪都属于汽车(抽象工厂),这两种车有各自的工厂生产线(具体工厂),但每种车的型号又不相同(抽象产品),每种车的每种型号又有各自的生产线(具体产品)。 抽象工厂:声明了一组用于创建一种产品的方法,每一
2016-02-02 14:52:48 204
原创 PopupWindow实现弹出菜单效果
(安卓开发中文网)PopupWindow类似于一个不能动的Widget,它是悬浮在别的窗口之上。 简单例子: res/layout/activity_main.xml <ListView android:id="@+id/lv_list" android:layout_weight="1" android:layout_width="matc
2016-02-02 14:50:39 298
原创 工厂方法模式——应用最广泛
(《设计模式解析与实战》读书笔记)一、定义 定义一个用于创建对象的接口,让子类决定实例化哪个类。它是创建型设计模式之一。 二、使用场景 在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。 三、工厂方法模式的通用模式代码/** * 抽象产品类 */public abstract class Product {
2016-02-02 14:47:01 335
原创 Android中的Drawable
一、Drawable简介 表示的是一种图像的概念。在实际开发中,Drawable常被用来作为View的背景使用。Drawable一般是通过XML来定义的,用代码会复杂些。在Android中,Drawable是一个抽象类,一般来说,Drawable是没有大小概念的,当用作View的背景时,Drawable会被拉伸至View的同等大小。二、Drawable的分类 (1)BitmapDrawble
2016-02-02 14:39:55 273
原创 原型模式——使程序运行更高效
(《设计模式解析与实战》读书笔记)一、定义 用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象; 二、使用场景 (1)类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗; (2)通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可使用原型模式; (3)一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型模
2016-02-02 14:30:41 294
原创 Build模式——自由扩展
(《设计模式解析与实战》读书笔记)一、定义: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 二、使用场景: 1 相同的方法,不同的执行顺序,产生不同的事件结果时; 2 多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时; 3 产品类非常复杂,或者产品类中的调用顺序不同产生了不同的作用; 4 当初始化一个对象特别复杂,如参数多,且很多参数都具
2016-02-02 14:26:12 376
原创 RemoteViews在桌面小部件和通知栏的使用
(《Android开发艺术探索》读书笔记)什么是RemoteViews: 它所表示的是一个View结构,可以在其他进程中显示,也就是可以跨进程更新它的界面。 RemoteViews的应用场景: 通知栏和桌面小部件(都运行在系统的SystemServer进程)。首先说明桌面小部件的开发步骤:1、定义小部件界面: /桌面小部件/res/layout/widget.xml<?xml
2016-02-02 14:20:54 1454
原创 单例模式
(《设计模式解析与实战》读书笔记)一、基本知识: 1、定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 2、使用场景:某个类只有一个对象,避免产生多个对象消耗过多的资源;某种类型的对象有且只有一个。 3、关键点: (1) 构造函数为private; (2) 通过一个静态方法或者美剧返回单例类对象; (3) 确保单例类的对象有且只有一个; (4) 确保单例类对象在
2016-02-02 14:13:03 312
原创 Android5.X新特性
(《Android群英传》读书笔记)Android5.X开始使用新的设计风格Material Design来统一整个Android系统的界面设计风格,主要是以下三个方面的设计: 1、材料的形态模拟(真实地空间感); 2、更加真实地动画(视觉连贯性); 3、大色块的使用(时尚感和视觉冲击力)。一、Material Design主题: 默认的三种主题:<style name="AppTheme"
2016-02-02 14:04:24 731
原创 IPC机制
(《Android开发艺术探索》读书笔记)Android IPC基本概念: IPC:Iner-Process Communication。意思为进程间通信,两个进程之间进行数据交换的过程。 IPC的使用场景: 一个应用因为某些原因自身需要采用多进程模式来实现(比如某个特殊模块需单独运行在进程中,亦或大应用需获取多份内存空间) 当前应用需要向其他应用获取数据(比如ContentProvider
2016-02-02 13:46:03 424
新手提问:关于校园网连接VPN的问题
2015-12-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人