随笔分类 - Java
1
摘要:Android程序主要是由java代码写成的,我们都知道java在内存回收方面有着自己的一套体系,完全不需要coder来做内存销毁,但是在编程的时候还是有内存泄露的事儿发生,这种情况一般是因为什么呢? 首先我们要明确的是java的内存自动回收机制是怎么一回事:在Java中,内存的分配是由程序完...
阅读全文
摘要:获取system权限 上一篇随笔简单介绍了下Android权限的一些规则,我们发现很多事如果没有system权限基本上无法完成,那么如何让自己的应用获取system权限呢? 一般情况下,设定apk的权限,可在AndroidManifest.xml中添加android:sharedUser...
阅读全文
摘要:毕竟是做Android的,对于ContentObserver是很熟悉的,在监听数据库变化时使用很频繁,android有一整套用来监听的API,直接拿来用就行了。观察者模式是用来监听对象的变化的行为型模式。 观察者(Observer)模式又名发布-订阅(Publish/Subscribe)模式。...
阅读全文
摘要:备忘录模式,翻译成标记模式好一些,因为这种设计模式的目的是为了反悔:GOF给备忘录模式的定义为:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 在之前的命令模式中,我们曾经提到利用中间的命令角色可以实现undo、redo ...
阅读全文
摘要:模板方法模式是一个非常简单的模式,因为它只使用到了继承关系。模板方法(Template Method)模式:定义一个操作中的算法的骨架,而将一些步骤延续到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。来看下这个简单模式的结构吧:1) 抽象类(Abstract Class):...
阅读全文
摘要:状态模式是策略模式的孪生兄妹,也属于行为型设计模式,GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。这有点像策略模式根本不同环境使用不同的行为(策略),状态模式只是这种环境是对象内部的状态集合。 能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就...
阅读全文
摘要:我们无时无刻不在时刻得调整自己的计划(策略)以完成目标,就跟玩dota一样,对局面的判断不同使得装备选择不同,阵容不同也使得自己的打法不一样,调整策略时刻都在发生。这些情况在实际系统中也是经常遇到,那么在软件系统中如何实现不同的策略呢? 策略模式是一种行为型设计模式,主要是定义一系列的算法,把...
阅读全文
摘要:迭代这个名词对于熟悉 Java 的人来说绝对不陌生。我们常常使用JDK 提供的迭代接口进行java collection 的遍历:1 Iterator it = list.iterator();2 while(it.hasNext()){3 //using “it.next();...
阅读全文
摘要:解释器模式和调停者模式都是行为型模式,由于二者用的情形比较少,不作过多解读,介绍一下相关概念,以作参考。 解释器模式有点儿“编译器”的概念,像个超级简单的编译器,且跟硬件无关,它的目的是定义语言(使用规定格式和语法的代码)的文法,然后建立一个解释器来解释该语言中的句子。 在 GOF 的书中指...
阅读全文
摘要:介绍命令模式之前,来看看Window的界面设计,同样的菜单控件,在不同的应用环境中的功能是完全不同的;而菜单选项的某个功能可能和鼠标右键的某个功能完全一致。按照最差、最原始的设计,这些不同功能的菜单、或者右键弹出菜单是要分开来实现的,你可以想象一下,word 文档上面的一排菜单要实现出多少个“形...
阅读全文
摘要:责任链模式听上去不太好理解,但是其实是非常简单的一种行为型设计模式。举个类比就知道它的定义了,说一个病人看牙的时候,医生不小心把拔下的一个牙掉进了病人嗓子里。各个科室的医生推卸责任,搞得病人因此楼上楼下的跑了不少冤枉路,最后无果而终。 责任链模式就是这种“推卸”责任的模式,你的问题在我这里能解...
阅读全文
摘要:代理,一般人都知道是什么意思,代理是一种行为,在客户不想或不能直接操作时,把操作交付给代理来处理,代理模式亦是如此,代理模式是一种典型的行为型设计模式,想完成的行为引出了代理模式,其实现方法倒是不拘泥。 代理模式定义为:为其他对象提供一种代理以控制对这个对象的访问。简单的说就是,不直接引用一个...
阅读全文
摘要:介绍享元模式之前,来聊聊Java中的String类型特性:String类型的 1、对象一旦被创造就不可改变; 2、当两个String对象所包含的内容相同的时候,JVM只会创建一个String对象对应着两个不同的对象引用。 验证一下2的特性1 public class TestPattern...
阅读全文
摘要:设计模式的门面模式是一个非常容易理解的模式,有点像适配器模式,不过与之不同的是,门面模式注重降低复杂度,提供统一的封装接口。 门面模式又有外观模式的说法,为子系统中的一组接口提供一个一致的界面,门面模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 门面模式是指在设计中为了降低复杂...
阅读全文
摘要:装饰模式,很容易想到模式的定义,动态地给一个对象添加一些额外的职责,起到一个填充装饰的目的,旨在更加灵活地扩充对象的功能。装饰模式重在形式结构,也是结构型设计模式,结构也形成了装饰模式的作用。我们来看看装饰模式的类图,初步了解下装饰模式的形式:装饰模式的构件是由四部分组成的:1、抽象构件角色(Com...
阅读全文
摘要:桥梁模式亦是结构型设计模式的一种,从名字上理解,像是连接两个元素的一种模式,差不多可以这么理解,但桥梁模式并非是像适配器模式一样适配不适应的两个类的。 桥梁模式连接的抽象和实现,为了达到抽象和实现这两部分都能变化的目的,必须使用桥梁的聚合作用来达到。这里的抽象部分和实现部分不是我们通常认为的抽...
阅读全文
摘要:组合(composite)模式,但从名字上就能知道这一模式属于之前我说过的结构型模式。 在说清组合模式的概念前,得先了解一下数据结构中“树”这个概念。 树(Tree)是n(n>=0)个结点的有限集合T,T为空时称为空树,其它情况叔这个概念要满足如下两个条件: 1、有且仅有一个特定的称为...
阅读全文
摘要:原型模式亦是一种创建型模式,同样适用于对象的创建。GOF给它的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 提到原型模式不得不提Java提供的clone()方法,clone方法作用就是复制一个对象且不会影响原对象,属于内存级复制,这就是原型模式的很好的例子。 使用...
阅读全文
摘要:工厂模式作为创建型模式中最经典模式,可以说是被运用的最为广泛。就算是刚刚学习java的小白,也会不经意间得在自己的程序中用到这一模式的一部分,无意识地就成就着工厂模式。 那么工厂模式是怎样的呢?怎么的代码设计才能称作完整的工厂模式? 就个人理解,工厂模式由其功能定义:为创建对象提供一个过渡的...
阅读全文
摘要:学习java设计模式有段时间了,一直在阅读学习《深入浅出设计模式》,本文就简单说下本人对于设计模式的浅显理解。 我理解的设计模式是一些框架,经过前辈们的实践与时间的考验沉淀下来的一种代码设计框架。在项目开始之前,良好的软件架构与代码设计对后面的项目实现开发效率的促进,维护成本的提高都有很大的益...
阅读全文
1

浙公网安备 33010602011771号