05 2015 档案

摘要:外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。 简单的说,外观模式就是把复杂的系统的具体操作封装起来,只暴露一个简单的接口,做和众多子系统之间松耦合。 提到一个设计原则:最少知识原则,只和你的密友谈话。(HeadFirst中的描述)具体的说就... 阅读全文
posted @ 2015-05-30 21:42 Pickle 阅读(674) 评论(0) 推荐(0) 编辑
摘要:迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,让我们能游走与聚合内的每一个元素,而又不暴露其内部的表示。 把游走的任务放在迭代器上,而不是聚合上这样简化了聚合的接口和实现,也让责任各得其所 提供一种可以遍历聚合对象的方式,又称为:游标cursor模式 聚合对象:存储数据 迭代器:遍历数... 阅读全文
posted @ 2015-05-30 21:13 Pickle 阅读(346) 评论(0) 推荐(0) 编辑
摘要:备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式,是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捕捉(Capture)住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原... 阅读全文
posted @ 2015-05-30 17:29 Pickle 阅读(1047) 评论(0) 推荐(0) 编辑
摘要:当创建给定的实例的过程很昂贵或非常复杂的时候,就使用原型模式来拷贝,这种方式在创建对象要耗费很多资源的时候效率提升显著。 实现深度克隆有两种方法,一种是实现Cloneable接口,重写clone()方法。另一种是通过序列化反序列化来获取对象的拷贝。 看一个介绍:http://blog.csdn.n... 阅读全文
posted @ 2015-05-30 17:09 Pickle 阅读(467) 评论(0) 推荐(0) 编辑
摘要:模板方法模式:模板方法模式是编程中经常用到的模式,它定义了一个操 作中的算法骨架,将某些步骤延迟到子类中实现。这样,新的子类可以在 不改变一个算法结构的前提下重新定义该算法的某些特定的步骤。 核心:处理某个流程的代码已经都具备,但是其中某个节点的代码暂时不 能确定。因此采用工厂方法模式将这个节点... 阅读全文
posted @ 2015-05-30 16:53 Pickle 阅读(589) 评论(0) 推荐(0) 编辑
摘要:命令模式:将一个请求封装为一个对象,从而使我们可以用不同的请求对客户进行参数化,对请求排队或者记录请求日志,以及支持可撤销的操作。也称之为:动作模式,事务模式。例如数据库的底层架构实现就是一种命令模式。 一个具体的命令来实现命令接口,并且通过Reciever的action()实现execute()方... 阅读全文
posted @ 2015-05-30 16:45 Pickle 阅读(1357) 评论(0) 推荐(0) 编辑
摘要:判断产品版本号的大小。public class Solution { public int compareVersion(String version1, String version2) { String[] v1 = version1.split("\\."); ... 阅读全文
posted @ 2015-05-24 19:14 Pickle 阅读(165) 评论(0) 推荐(0) 编辑
摘要:HeadFirst中的定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器模式将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能在一起 工作的类可以在一起工作。 目标接口(Target):客户所期待的接口。目标可以... 阅读全文
posted @ 2015-05-22 16:11 Pickle 阅读(538) 评论(0) 推荐(0) 编辑
摘要:从右向左旋转数组,一共k次。k可以是任意数字。public class Solution { public void rotate(int[] nums, int k) { if(k == 0 || nums.length==0 || nums.length==1) ret... 阅读全文
posted @ 2015-05-21 23:43 Pickle 阅读(167) 评论(0) 推荐(0) 编辑
摘要:HeadFirst中并没有把建造者模式(生成器模式)当做常用的设计模式来讲解,只是在附录中一带而过。 建造者模式的本质: 分离了对象组件的单独构造(由Builder来负责)和装配(由Director)来负责。从而可以构建出复杂的对象。这个模式适用于:某个对象的构建 过程复杂的情况先使用。由于实现了... 阅读全文
posted @ 2015-05-21 22:23 Pickle 阅读(528) 评论(0) 推荐(1) 编辑
摘要:题意很好理解,判断两个字符串的结构是否相同。测试数据里有?{}【】等符号啊,果断扩大到300.public class Solution { public static boolean isIsomorphic(String s, String t) { if(isIsomorphicOn... 阅读全文
posted @ 2015-05-21 15:24 Pickle 阅读(163) 评论(0) 推荐(0) 编辑
摘要:工厂模式用来实例化对象并且实现实现与调用分离,用工厂模式来替代new。 来看看这位老兄总结的吧,不想废话了。http://www.cnblogs.com/poissonnotes/archive/2010/12/01/1893871.html 工厂模式有三种: 1. 简单工厂模式 2. 工厂方法模... 阅读全文
posted @ 2015-05-20 23:58 Pickle 阅读(502) 评论(0) 推荐(0) 编辑
摘要:反转链表,用了一个比较笨的方法。public class Solution { public ListNode reverseList(ListNode head) { if(head == null || head.next == null) retur... 阅读全文
posted @ 2015-05-20 23:28 Pickle 阅读(192) 评论(0) 推荐(0) 编辑
摘要:HeadFirst中对单例模式的定义:单例模式确保一个类只有一个实例,并只提供一个全局访问点。单例模式的应用:任务管理器、回收站、项目的配置文件、日志文件等等单例模式的特点:单例模式只有一个实例,减少了系统的开销,当一个对象的产生需要很多资源时,就可以通过在启动时来创建一个实例永久的驻存。可以在全... 阅读全文
posted @ 2015-05-20 15:51 Pickle 阅读(602) 评论(0) 推荐(0) 编辑
摘要:HeadFirst中装饰者模式的定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的的替代方案。 装饰模式的职责:动态的为一个对象增加新的功能。装饰模式是一种用于代替继承的技术,无需通过继承增加子类就可以扩展对象的功能,使用对象的关联关系代替继承关系,更加灵活,同时避免类型... 阅读全文
posted @ 2015-05-17 23:22 Pickle 阅读(1165) 评论(0) 推荐(0) 编辑
摘要:JDBC连接数据库基本的步骤是固定的,这样就可以考虑封装一个工具类来简化数据库操作。 封装时用到了Java中的properties配置文件,是以一种键值对的形式存在的,可以把连接数据库要动态的信息保存到里面,这样比较直观,不容易出错,而且容易维护。 把配置文件放到src下就可以,如果要放到包下面... 阅读全文
posted @ 2015-05-15 17:44 Pickle 阅读(4266) 评论(2) 推荐(1) 编辑
摘要:JDBC支持文本(CLOB)和二进制(BLOB)文件的处理,比如要往数据库里存取文章或者图片。这都是用流的思想来解决的。 来两个Demo看看JDBC是怎么操作文本和二进制文件的。 CLOB:package com.wxisme.jdbcclob;import java.io.File;import ... 阅读全文
posted @ 2015-05-15 17:32 Pickle 阅读(447) 评论(0) 推荐(0) 编辑
摘要:JDBC(Java Database Connection)是Java提供的数据库连接标准,具体的标准实现由各个数据库厂商提供。 下面以MySQL为例来简单演示JDBC接口的基本用法。 JDBC连接数据库的基本步骤如下: 1.加载要连接的数据库驱动,运用了反射机制。 加载MySQL驱动的代码为:C... 阅读全文
posted @ 2015-05-14 00:24 Pickle 阅读(1255) 评论(0) 推荐(0) 编辑
摘要:HeadFirst中对观察者模式的定义:观察者模式定义了对象之间的一对多的依赖,这样一来,当一个状态发生变化时,它的所有依赖者都会收到通知并自动更新。松耦合:当两个对象时间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计,让主题和观察者之间的松耦合。 有两种自动更细的... 阅读全文
posted @ 2015-05-13 00:22 Pickle 阅读(538) 评论(0) 推荐(2) 编辑
摘要:HeadFirst中策略模式的定义:策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 策略模式体现的设计原则:1.封装变化,把会变化的部分封装起来,让其他部分不受到影响。使代码更加有弹性。 2.面向接口编程,而不是面向实现编程。更易于维护和扩展,更... 阅读全文
posted @ 2015-05-12 15:44 Pickle 阅读(1097) 评论(0) 推荐(1) 编辑
摘要:找出n!中零的个数。 对n!做质因数分解n!=2x*3y*5z*... 显然0的个数等于min(x,z),并且min(x,z)==z 证明: 对于阶乘而言,也就是1*2*3*...*n [n/k]代表1~n中能被k整除的个数 那么很显然 [n/2] > [n/5] (左边是逢2增1,右边是逢5增1... 阅读全文
posted @ 2015-05-06 15:59 Pickle 阅读(160) 评论(0) 推荐(0) 编辑
摘要:就以《平凡的世界》这本书开始吧,我不从文学的角度来评价这本书,我也不懂文学。但是我懂的是自己的内心,这本书极大的触动了我。这本书写的太真实了,而我就好像书中的某一个人,他高兴时我也会高兴,他经受苦难时我会感到煎熬,他遇到爱情时我的心跳也会加速。我和他是多么的相似。看书就像是穿越了一样,看着自己的人生 阅读全文
posted @ 2015-05-03 19:36 Pickle 阅读(395) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示