- 博客(75)
- 资源 (6)
- 收藏
- 关注

原创 android gallery 竖直(上下)滑动
最近做一个项目,要求上下滑动gallery,网上找了好多资料都不太理想,不说了,说多了都是泪啊!先上图:免得误导观众!下面说一下我的方法:1,重写VerticalGallery类继承Gallerypublic class VerticalGallery extends Gallery2.重写ondrow方法,使gallery逆时针旋转@Overrideprote
2013-11-18 12:04:17
4891
3
原创 设计模式抽象工厂模式(AbstractFactoryPattern)
核心模块:抽象工厂、具体工厂、抽象产品、具体产品所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:具有产品和工厂二维属性且一个工厂能够提供多个产品对象;优点:解耦合,隔离生产者和客户;缺点:扩展新的产品要改动工厂类和上层的抽象类,改动了结构,为了解耦牺牲了opc开放封闭原则;注意:1,三个工
2018-01-15 18:22:25
270
原创 设计模式工厂方法模式(FactoryMethodPattern)
核心模块:Product抽象产品、ConcreteProduct具体产品、Creator抽象工厂、ConcreteCreator具体工厂所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:复杂对象的创建;优点:用户只需要知道产品的工厂,无需关心产品类和类名,新增产品只需要新增产品工厂;缺点
2018-01-12 14:15:27
248
原创 设计模式简单工厂模式(SimpleFactoryPattern)
核心模块:Product抽象产品、ConcreteProduct具体产品、Factory工厂角色所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:有很多相似的对象,客户不需要关系对象如何创建;优点:解偶了客户创建对象,减少了客户的记忆量(到底需要创建哪个实例类);缺点:系统扩展困难,新加
2018-01-12 11:05:43
239
原创 设计模式单例模式(SingletonPattern)
核心模块:所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:只需要一个实例对象,需要频繁创造销毁的对象,创建时耗时过长的对象,数据库或者文件对象;优点:节约系统资源;缺点:没有抽象层扩展有困难,类职责过重违背单一职责原则;注意:1,建造者模式是将一个复杂对象的创建过程给封装起
2018-01-11 21:52:39
252
原创 设计模式建造者模式(BuilderPattern)
核心模块:Builder抽象建造者、ConcreteBuilder具体建造者、Product产品角色、Director指挥者所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:构建复杂对象,或者构件过程中需要强制的分布措施;优点:客户可以精细的控制构建过程,将产品创建过程和产品本省分离,细节依赖于
2018-01-11 21:00:38
230
原创 设计模式适配器模式(AdapterPattern)
核心模块:Target目标类、Adaptee被适配者、Adapter适配器所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:将目标类和适配者类解耦,一般用于接入第三方库;优点:增加了类的透明性,新加adaptee只需要新加Adapter;缺点:不支持多重继承,一个Adapter只能适配一
2018-01-11 20:06:21
259
原创 设计模式桥接模式(BridgePattern)
核心模块:Abstracttion抽象类、RefinedAbstraction扩充抽象类、Implementor实现类接口、ConcreteImplementor具体实现类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:多维度耦合的情况,不希望用继承的情况;优点:减少了类的数量和和代码量,避免
2018-01-10 22:27:42
211
原创 设计模式组合模式(CompositePattern)
核心模块:抽象构件、树叶构件、容器构件所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:树形结构或者希望一致对待整体和部分;优点:能够很好的分层,模糊整体和部分的差异,容器对象很容易扩展;缺点:如果复杂对象很复杂,叶子对象将有很多空方法;注意:1,核心就是简单对象和复杂对象实
2018-01-10 20:42:22
199
原创 设计模式装饰者模式(DecoratorPattern)
核心模块:抽象组件,具体组件,抽象装饰者,具体装饰者所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:给对象增加额外行为,用于替代继承的技术,动态给对象增加额外职责;优点:符合opc原则,可以重复装饰,提供了一个比继承更加灵活的方式,不会导致类的个数急剧增加;缺点:会产生许多小对象,灵活
2018-01-08 20:25:00
195
原创 设计模式外观模式(FacadePattern)
核心模块:外观角色,子系统角色所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:有很多复杂的子系统,为客户提供一个简单的入口;优点:客户并不需要各个子系统如何协同工作,减少客户和子系统的耦合;缺点:不能很好的控制客户和子系统的交互;注意:1,与模版方法模式区别:模版方法模
2018-01-04 19:58:49
197
原创 设计模式享元模式(FlyweightPattern)
核心模块:抽象享元类,具体享元类,享元工厂类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:大量细小粒度对象的复用;优点:减少内存中对象数量,节约系统资源,提高对象的复用率,内外状态分开隔离;缺点:增加了代码复杂度;注意:1,外部状态用来在工厂类中寻址,内部状态用来自己
2018-01-04 19:54:52
214
原创 设计模式代理模式(ProxyPattern)
核心模块:抽象角色,真实角色,代理角色所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:适合不方便直接访问对象的情况;优点:协调了调用者和被调用者,减少耦合,起到了保护目标对象的作用;缺点:由于使用代理可能会使请求速度变慢;注意:1,与中介者模式区别,中介者对中介双方权重
2018-01-04 15:04:42
276
原创 设计模式观察者模式(ObserverPatern)
核心模块:抽象观察者,具体观察者,抽象主题,具体主题所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:一个对象的改变将导致一个或多个其他对象也发生改变,适合一对一或者一对多的场景;优点:主题和观察者之间松耦合(观察者并不需要知道主题发生了什么变化),符合opc原则(新增观察者只需要实现抽象观察者
2018-01-04 11:31:46
179
原创 设计模式访问者模式(VisitorPattern)
核心模块:抽象访问者、具体访问者、抽象元素、具体元素、对象结构所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git目的:封装一些施加于某种数据元上上的操作,使不改变元素类的情况下定义作用于这个元素的新操作;使用场景:数据元很少改变,但是数据元上的操作经常改变;优点:方便添加新操作,有关元素对象的访问
2018-01-03 20:28:40
213
原创 设计模式状态模式(StatePatern)
核心模块:抽象状态类、具体状态类、环境类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:复杂的内部状态如switch case庞大的if语句,使之外显;内部状态改变而改变其相关行为;优点:封装了转换规则,将某个状态有关的行为放到一个类中,这个类中其他状态的方法不处理;缺点:对opc支持
2018-01-03 19:46:16
183
原创 设计模式备忘录模式(MementoPatern)
核心模块:Originator原发器、Mementor备忘录、Caretaker负责人所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:大多数编辑器,提供undo的操作功能;优点:实现了信息的封装,不破坏封装的情况下,保存内部状态,用户不需要关心保存细节;缺点:内部成员变量过多,保存的内
2018-01-03 19:23:12
201
原创 设计模式中介者模式(MediatorPattern)
核心模块:抽象中介者、具体中介者、抽象同事类、具体同事类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:双方不直接交流的情况下,进行通信(调用等);优点:降低耦合性,不需要显示的调用对象,减少系统对象之间的耦合;缺点:关系过于复杂的话,中介类将异常庞大;注意:1,不同于访问
2018-01-03 18:32:15
662
原创 设计模式解释器模式(InterpreterPattern)
核心模块:抽象表达符、非终结表达符、终结表达符、环境类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:正则表达式,自定义语言,计算器;优点:易于扩展,增加新的符号只用增加新的表达式即可;缺点:复杂的文法难以维护,存在大量循环和递归操作,复杂的句子,速度很慢;注意:1,每一个
2018-01-03 18:01:00
216
原创 设计模式命令模式(CommandPattern)
核心模块:抽象命令类、具体命令类、命令接收者、调用者所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:不知道请求的接收者,不知道请求的操作,主要封装不同的命令,可以使用这种松耦合的方式;优点:低耦合度,新的命令很容易添加到系统,支持undo和redo操作,和命令队列;缺点:如果命令过多导
2018-01-03 17:18:56
180
原创 设计模式职责链模式(ChainofResponsibilityPattern)
核心模块:抽象处理者、具体处理者、客户端所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:适用于权限不同的角色系统;优点:发送者只需要将请求发送到链上,无需关心谁处理,达到发送者和处理者之间的解耦,允许动态的新增责任和删除责任;缺点:请求可能不被处理或则循环,不能观察到内部状态注
2018-01-03 16:18:48
194
原创 设计模式迭代器模式(IteratorPattern)
核心模块:迭代器角色(定义访问和遍历元素的接口),具体迭代器角色,容器角色,具体容器角色所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:外部对象访问内部聚合对象;优点:将存储数据和遍历数据分开,符合单一职责原则;缺点:新聚合类,就要增加新的迭代器类;增加系统复杂性;/** * C
2018-01-03 15:48:54
633
原创 设计模式策略模式(StrategyPattern)
核心模块:抽象策略类、具体策略类、环境类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git使用场景:动态的选择算法,不希望客户端知道复杂的与算法相关的数据结构;提高保密性;优点:符合opc,提供了可变算法分离成类,而不用在继续继承本类来写缺点:细小的变化都将导致增加一个策略类;注意:与状态模式区别,状
2018-01-03 15:33:29
226
原创 设计模式模版方法模式(TemplateMethodPattern)
核心模块:AbstractClass抽象类、ConcreteClass具体类所有代码请访问:git@code.aliyun.com:289804201/PatternLearn.git目的:提供一个算法框架,使得相同的算法框架可以有不同的执行结果:使用场景:对复杂的算法进行分割,不变的部分保存到父类中,细节改变由子类来实现;优点:代码复用,符合opc开放封闭原则,行为可
2017-12-19 10:50:02
178
原创 Android&java优化---(2)---java内存
学习jvm架构的涉及的java内存,下面是自己的学习笔记:Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创
2015-11-21 17:52:41
458
原创 Android&java优化---(1)---jvm架构
从2015年3月份跳槽到现在,已经1年多没有更新自己的博客了,也许是自己来新公司过于忙碌流程过多,也有可能是自己懈怠了,忘了程序员要不断的更新自己的知识结构,谨以此记与诸君共勉之!题记:程序员一直以来都被一些莫名奇妙的规范所限制,比如不能使用静态变量等等,这个问题我们不做讨论,但是作为一个优秀的程序员一定要有自己的知识架构,才能理解一些奇怪的编程规范,比如java可以不用初始化类变量,
2015-11-21 17:48:39
449
转载 window sdk 更新
为在开始->运行->cmd 中敲入 ping dl-ssl.google.com -t 始终ping不通,关闭cmd后首先需要下载一个代理服务器下载地址http://pan.baidu.com/share/link?shareid=341717&uk=2601338879打开此软件,在内容选项中 看到生成的代理地址,记住ip地址127.0.0.1 和端口号8580
2014-08-17 17:51:29
1002
原创 ubuntu多个gcc版本切换
1,安装几个版本的gcc和g++sudo apt-get install gcc-4.3 gcc-4.4 g++-4.3 g++-4.4sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.3 10 sudo update-alternatives --install /usr/bin/gcc gcc
2014-06-24 10:08:21
1421
转载 ubuntu 访问小米3的文件系统
方法一:1.将手机连接至PC机2.如果是第一次使用MTP设备需要安装以下软件,否则可以跳过此步骤:$ sudo apt-get install mtpfs libfuse-dev libmad0-dev(小米提示的是sudo aptitude install mtpfs libfuse-dev libmad0-dev,可是如果你没有装aptitude,会显示找不到命
2014-06-23 10:33:02
1567
原创 pull 方式解析xml文件
关于xml的解析,网上提供了许多的解析方式;sax和pull和dom的各有优缺点;但常用的还是pull这里我就自己理解的pull来解释;pull是基于事件触发的可以认为是流形式的;姑且认为读到一个tag或一串字符都会停顿;1,数据结构类:public class Book { private int id; private String name; private float p
2014-04-03 18:41:18
831
原创 android竖直seekbar
参考了:http://blog.youkuaiyun.com/failure01/article/details/8577675做了如下修改:1,修改宽度使宽度可以调节;2,修改了按键事件,使之响应遥控器的上下按键,并且释放了左右按键;public class VerticalSeekBar extends AbsSeekBar { private String TAG = "Vert
2014-04-02 11:50:19
1310
原创 android mimeType
理论参考:http://blog.youkuaiyun.com/androidzhaoxiaogang/article/details/6853100代码为自己添加多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions)是一个互联网标准,它扩展了电子邮件标准,使其能够支持非ASCII字符、二进制格式附件等多种格式的邮件消息。附上程序代
2014-04-01 12:24:29
1459
转载 intent-filter的data属性详述
一、定义 scheme, host, port, path, pathPrefix, pathPattern 是用来匹配 Intent 中的 Data Uri 的。具体规则如下: scheme://host:port/path or pathPrefix or pathPattern这里需要注意的是这里的 scheme 不是 sche
2014-04-01 11:54:57
797
原创 intent filter的使用
在AndroidManifest.xml文件中用属性描述组件的Intent Filter。 隐式Intent(Explicit Intents)和Intent Filter(Implicit Intents)进行比较时的三要素是Intent的动作、数据以及类别。实际上,一个隐式Intent请求要能够传递给目标组件,必要通过这三个方面的 检查。如果任何一方面不匹配,Android都不会将该隐式I
2014-04-01 11:40:51
859
转载 uri 和url
这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如:imgUrl,logoUri等等。但是,每次定义的时候,心里都很纠结,是该用imgUrl还是imgUri呢?同样的,另外一个问题:String HttpServletRequest.getRequestURI();和StringBuffer HttpServletReques
2014-04-01 11:27:17
535
原创 android 定时器,任务延时
1,使用handler,延时一秒在前台启动任务;new Handler().postDelayed(new Runnable() { @Override public void run() { // TODO Auto-generated method stub videoView.start(); } }, 1000);2,使用Thread.s
2014-03-31 14:58:49
726
转载 java 数组转化为list接口
1,方法01import java.util.Arrays;02import java.util.List;03import java.util.ArrayList;04 05pu
2014-03-26 17:36:32
676
转载 android中延迟执行某个任务
android中延迟执行某个任务android App开发在某些情况下需要有延时功能,比如说App首页显示定格3秒,然后自动跳到登录页的情况,这就好比是一个预加载,但是这个预加载可能瞬间就完成了,撑不到3秒钟,这是就要求你做延时处理。下面是三种方法:一、线程[html] view plaincopy1. new Thread(
2014-03-25 11:18:35
621
深入理解Android卷二全
2018-05-25
深入理解Android卷1全
2018-05-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人