![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
lansuiyun
这个作者很懒,什么都没留下…
展开
-
java 流笔记
解决FileWriter BufferedReader 不能设置编码的问题:BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"utf-8"));OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(newfile, true),"UTF-8");用OutputStreamWriter 代替File原创 2010-06-06 16:41:00 · 386 阅读 · 0 评论 -
代理模式
代理模式定义:为一个对象提供一个替身或占位符以控制对这个对象的访问。被代理的对象可以是远程的对象、创建开销大的对象、需要安全控制的对象。角色:subject:真正对象与代理对象都要实现的接口,允许客户可以像处理真正对象一样处理代理对象proxy:代理对象,并持有真正对象的引用,必要时可以将请求转发给真正对象。realSubject:真正对象,代理对象控制对其访问类型:远原创 2013-09-24 22:34:43 · 692 阅读 · 0 评论 -
策略模式
策略模式定义:属于对象的行文模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。策略模式使得算法可以在不影响客户端代码的情况下发生变化。策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法, 并将每一个原创 2013-09-23 14:01:23 · 1089 阅读 · 0 评论 -
组合模式
组合模式定义:允许你将对象组合成树形来表达结构来表现“整体/部分”层次结构。组合能让用户以一致的方式处理个别对象及对象组合。角色:component :是组合中对象的接口,适当情况下,实现所有类共有方法的默认行为,声明一个接口,用于管理和访问component子部件composite:定义具有叶节点的组件的行为leaf:定义叶节点的行为client:使用component接口操原创 2013-09-22 23:31:52 · 1703 阅读 · 0 评论 -
状态模式
状态模式定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。角色:context应用环境:内部持有多个state的引用以及代表当前状态的应用state状态接口:定义了所有具体状态的共同接口,任何状态都要实现这个接口,以便,状态之间相互替代。concreteState具体状态:处理来自context的请求,每个concreteState都提供了自己对于请求的实现,原创 2013-09-23 15:25:34 · 850 阅读 · 0 评论 -
模板方法模式
模板方法模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤将主要的方法定义为final,防止子类修改算法骨架,将子类必须实现的方法定义为abstract。而普通的方法(无final或abstract修饰)则称之为钩子。钩子作用:1)作为可选内容,子类可以重写或者置之不理2)让子类有机会对模板原创 2013-09-22 14:53:03 · 5359 阅读 · 0 评论 -
命令模式
命令模式定义:属于行为模式,将一个请求封装成对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。将命令的请求者与执行者解耦,请求者不需要知道执行的细节角色: 命令接口,命令子类,调用者,执行者概括:命令接口定义一个简单的方法execute,命令的子类包含一个执行者的实例,execute中调用执行者相应的方法来完成某个功能或动作,调用者包原创 2013-09-21 20:33:40 · 1324 阅读 · 0 评论 -
适配器模式
适配器模式定义:将一个类转换成客户希望看到的另一个接口,使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。简单来说:你现在有一个A的对象,但是现在需要B接口的对象,通过适配器模式可将A伪装成一个B的对象,达到目的,A的对象、B接口在功能上要类似。核心便是转化二字。角色:目标接口,适配器,被适配接口分类:有对象适配器和类适配器两种。类适配器是采用多重继承的方式,使适配器同事继原创 2013-09-22 00:21:08 · 1245 阅读 · 0 评论 -
工厂模式
工厂模式有三种:简单工厂模式、工厂方法模式、抽象工厂模式简单工厂:类创建模式,用来创建其他类的实例,通过不同的特征返回不同类的实例,被返回类具有相同的父类角色: 产品的父类产品的具体类工厂类 优点: (1)工厂类含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅“消费”产品;简单工厂模式通过这种做法实现了对原创 2013-09-21 15:59:46 · 2383 阅读 · 0 评论 -
装饰者模式
装饰者模式:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案 要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为装饰者会使持续中出现很多小类,增加使用难度使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生很多类,且很原创 2013-09-15 22:30:22 · 13593 阅读 · 7 评论 -
CountDownLatch 与 CyclicBarrier应用
CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。问题:老师组织一次原创 2013-07-07 21:58:45 · 673 阅读 · 0 评论 -
Comparison method violates its general contract
今天一同事采用Collections.sort 来对文件进行排序,出现Comparison method violates its general contract 异常,找了好久,才发现是实现接口Comparator 的类有问题,在compare中没有处理好两个比较的对象相等的情况public int compare(T lhs, T rhs);转载 2014-08-12 16:33:49 · 5443 阅读 · 1 评论