关闭

[置顶] 是时候干掉onActivityResult了

两个冤家,handler与onActivityResult安卓中有两个我们常用,但写起来非常不爽的代码。一个是handler,另一个就是onActivityResult了。他们非得让我们都整一个常量,而且看代码时请求和处理逻辑之间跳来跳去。一个字,晕。 我们知道handler大部分用在网络请求上,至于去掉可以看我以前的文章安卓项目易用Ohttp封装,当然这个网络请求封装很多。但对onActivit...
阅读(484) 评论(0)

[置顶] 安卓项目易用Ohttp封装

在android中的网络请求如果用Handler来传,看代码跳来跳去太累。首先呢,这个是我实际项目中的封装,各位不用担心能不能用的问题。支持的功能:1.无缝在主线程调用回到主线程 2.自动Gson泛型机械,并支持到二级泛型 3.支持Activity结束时,取消所有创建的网络操作 4.支持单个网络操作取消 5.使用链式调用,使用方便Get请求HttpUtil.newBuilder(this)/...
阅读(510) 评论(0)

[置顶] 安卓优化之SparseArray易懂详解

SparseArray是对hashmap的内存优化。它怎么优化的呢,为什么呢。因为知道怎么优化的之后,我们就能更好的理解它的方法和使用它。下面我们从遍历,赋值,遍历体现优化的莫过于它怎么遍历的://可以看到有从零到Size的index。 for (int i = 0; i < sparseArray.size(); i++) { int key = keyAt(i);...
阅读(417) 评论(0)

[置顶] 面向对象的23种设计模式

首先呢,设计模式是针对面向对象来的。再说设计模式之前我们先来说一下六大设计原则。 首先最基础的开闭原则:对扩展开放,对修改关闭。 为啥这是最基础的,因为我们都知道软件是要改的。对扩展开放保证了可以增加功能,像泛型啦这些。对修改关闭保证了像前的兼容性,jdk7兼容jdk6这样。所以开闭原则围绕软件的整个生命周期。在说其余五个之前我先说一下程序设计的模块内高内聚,模块间低耦合,其实把类看成一个模块,结...
阅读(974) 评论(0)

[置顶] 自定义dialog简单封装

自定义 dialog,简单代码封装...
阅读(822) 评论(0)

[置顶] 好程序员的修养

如题所述,这是一个关于好程序员的故事。那么什么样的程序员叫好的程序员呢,我们这里之谈技能方面。那这就好办了,好程序员就是写的好代码的程序员。对吗?对不完全对,因为忽略了程序员的一个重要特性,就是改bug和在改bug的路上。于是我们得出好程序员就是产生最少的bug和最快的改好bug。一。产生最少的bug 1.最简单的实现功能:这个道理简单,代码越少bug越少。先不考虑优化、性能这一切东西,也不要用自...
阅读(1021) 评论(0)

[置顶] 安卓theme与style详解

安卓app作为一个有界面的程序,谷歌给我们提供了很多UI控件。而控件是功能性的,具体的控件样式确是需要我们自己去控制的。这也就引出了今天话题,安卓的theme与style。说到这个,大家可能都知道theme是主题,也就是整个app的样式。而style是样式,控制的是单个View。是的,希望我们在应用的时候也要铭记这点。 也就是说theme是针对application和activity的...
阅读(1344) 评论(0)

解释器模式

这是设计模式最后一篇,迟迟没有写。听到这个名字可能会想到解释型语言,学习编译倒也可以参考一下这个。这个在实际工作中用的很少,直接上实现加减乘除的代码吧public class Interpreter { interface Expression { int interpret(Context context); } //终结符表达式(Terminal Expre...
阅读(602) 评论(0)

中介者模式

中间人模式也叫中介模式,听名字就应该知道的差不多了。下面例子中张三李四中间就有个中间人,代码如下:public abstract class Mediator { public abstract void contact(String content, String name); public static class Colleague { protected Str...
阅读(425) 评论(0)

访问者模式

访问者模式,很多人认为是最难的一种设计模式。我觉得是名字没起好。我们先换个名字,不如叫它读者模式,我们知道一千个读者有一千个哈姆雷特。也就是说同一个对象,不同的读者会有不同的操作。代码如下:public class Visitor { abstract static class Element {//抽象的书 public abstract void accept(IVisi...
阅读(500) 评论(0)

状态模式

生活中大部分东西都用容易变的和不容易变的,容易变的我们叫这个东西处于某种状态。比如人睡觉时你不要吵醒他。有时候某种状态影响对象整个的外部表现:像水和冰给人感觉就不是一个东西了,这时候我们就可以用状态模式了:public class State { public interface IWaterState { void printState(); } public s...
阅读(396) 评论(0)

备忘录模式

备忘录模式也叫快照模式。在我们使用画图或ppt等办公软件时,常要撤销一些操作,这也是这个模式存在的最主要原因。代码如下:public class Memento {//这个模式为了恢复到以前的某个状态 static class Originator { private String state = ""; public String getState() {...
阅读(686) 评论(0)

命令模式

命令,我们知道有命令、命令者、和被命令者。代码如下:public class Command { //命令模式 本来很简单的一句话的事为啥要整个模式,这个模式最主要的是命令者和被命令者的分离 public interface command {//命令接口 void exe(); } public static class MyCommand imple...
阅读(391) 评论(0)

责任链模式

说责任链之前,我们先来说责任。责任就是一件事情由谁处理,出了问题由谁负责。无论公司还是政府,都是层层管理的,上面不处理就交给下面。就形成了一个责任链条, 现在的触屏设备的点击事件也是一样。一般都采用责任链模式,大控件不处理就转给小控件。代码如下:public class ResponsibilityChain { public static abstract class Widget {...
阅读(411) 评论(0)

迭代器模式

迭代模式就是提供一种遍历方式,像list、set等都实现了迭代模式。我们下面实现对String字符的遍历:public class MyIterator { interface iterator { Object next(); boolean hasNext(); } static class MyString implements iterat...
阅读(395) 评论(0)

观察者模式与回调

在说观察者模式之前,我们来说一下回调函数。如小明想找小丽看电影,小丽不在家。小丽妈妈接的电话,于是小明说小丽到家了告诉他。实现如下:public class Observer { public interface Watcher { public void update(); } public static class 小丽妈妈{ private...
阅读(438) 评论(0)

模板方法模式

我们做一些事情都有一个步骤,而相似事的步骤是一致的。就拿我们打10086来说,有人查余额和有人要人工服务,但他们的不知都分下面三步:拨号、选择服务、评分。这种最适合用模板方法,实现如下:public class TemplateMethod { //模板抽象方法 public abstract static class Template10086 { //1.拨打10...
阅读(391) 评论(0)

策略模式与机制

在说策略模式之前,我们首先要说下Unix/Linux的接口设计有一句通用“提供机制而不是策略”的格言。 什么是策略,策略有点像战术是具体的东西。而机制像战略是目的。 通俗来说机制是做什么,策略是怎么做。public class Strategy { // 抽象策略 interface EatStrategy { void eatFood(); } s...
阅读(397) 评论(0)

组合模式

这里的组合模式不是”组合好于继承”的组合,那么是什么组合呢,我们来看代码: abstract class Component { String name; public Component(String s){ this.name=s; } public abstract void add(Component c);...
阅读(440) 评论(0)

享元模式

享元模式听名字就知道是共享一个东西,为了节省内存嘛。那么它和单例模式有什么不同呢?单利模式就一个对象,而享元模式是一组对象,共享的是相同的对象。没错,我们的String就用的享元模式,下面我们代码实现: public abstract class Flyweight{  public abstract void operation(); } public class Concre...
阅读(407) 评论(0)

桥接模式

因为这个模式网上有很多不恰当的例子,这里先引用百度百科的定义:桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立地变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interface)模式。 所以说桥接模式就是接口模式,一方调用接口,一方实现接口。还是百度上的示例代码: public class Abstraction { /* Fields */...
阅读(430) 评论(0)

外观模式

这个是比较好理解的,拿我们的电脑做例子。电脑有cpu,内存,显卡等这些。当电脑开机时,主板、cpu、内存等都要启动。但作为用户并不需要管里面启动顺序之类的,我们只要按下开机键就行了。public class Facade { public static class Board { public void start(){ System.out.print...
阅读(407) 评论(0)

代理模式

代理模式和装饰器模式实现起来很像,那他们的区别在哪呢。我喜欢从名字上分析,装饰只是加点东西,而代理是全权的。所以装饰改的是一个接口的方法(当然装饰可以嵌套),而代理是所有的方法(当然java动态代理只能更改有接口的)。代理分为静态代理和动态代理,下面上静态代理代码:public class Proxy { interface Draw { String draw();...
阅读(417) 评论(0)

装饰器模式

装饰器模式,听名字就知道是在原来的上面加点东西,面向对象的23种设计模式点这里。废话少说,我们把圆球图上颜色。上代码:public class Decorator { public interface Color {//颜色接口,可返回任意颜色 String draw(); } public static class RedColor implements Co...
阅读(454) 评论(0)
37条 共2页1 2 下一页 尾页
    个人资料
    • 访问:18946次
    • 积分:562
    • 等级:
    • 排名:千里之外
    • 原创:37篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    博客专栏
    文章分类