
设计模式
文章平均质量分 82
Lena-Yang
The best way to predict the future is to invent it. if you look for it, you won’t find it.
展开
-
Java设计模式(四):原型模式深拷贝的两种实现方式,以及和new对象的性能测试对比
如果需要短时间创建大量对象,并且new的过程比较耗时,则可以考虑使用原型模式。而采用clone的方式,相比序列号的方式,更高效。只不过,如果类中有成员变量是引用类型,也要一起进行clone!原创 2016-05-26 17:44:13 · 2033 阅读 · 0 评论 -
Java设计模式(一):单例模式,防止反射和反序列化漏洞
一、懒汉式单例模式,解决反射和反序列化漏洞package com.iter.devbox.singleton;import java.io.ObjectStreamException;import java.io.Serializable;/** * 懒汉式(如何防止反射和反序列化漏洞) * @author Shearer * */public class Singleto原创 2016-05-22 22:49:18 · 8532 阅读 · 11 评论 -
Java设计模式(二):单例模式的5种实现方式,以及在多线程环境下5种创建单例模式的效率
这段时间从头温习设计模式。记载下来,以便自己复习,也分享给大家。package com.iter.devbox.singleton;/** * 饿汉式 * @author Shearer * */public class SingletonDemo1 { // 类的静态成员变量只初始化一次,天然是线程安全的 private static final Singlet原创 2016-05-23 12:14:59 · 2174 阅读 · 1 评论 -
Java设计模式(四):原型模式Prototype
原型模式是一种创建型设计模式,它通过复制一个已经存在的实例来返回新的实例,而不是新建实例.被复制的实例就是我们所称的原型,这个原型是可定制的.原型模式多用于创建复杂的或者耗时的实例, 因为这种情况下,复制一个已经存在的实例可以使程序运行更高效,或者创建值相等,只是命名不一样的同类数据.原型模式中的拷贝分为"浅拷贝"和"深拷贝":浅拷贝: 对值类型的成员变量进行值的复制,对引用类型的原创 2016-05-25 22:45:13 · 487 阅读 · 0 评论 -
Java设计模式(九):组合模式composite
package com.iter.devbox.composite;import java.util.ArrayList;import java.util.List;/** * 抽象构件 * @author Shearer * */public interface AbstractFile { void killVirus(); //杀毒}class ImageFile原创 2016-05-29 13:32:00 · 569 阅读 · 0 评论 -
Java设计模式(八):桥接模式bridge
桥接模式核心要点:处理多层继承结构,处理多维度变化的场景,将各个维度设计成独立的继承结构,使各个维度可以独立的扩展在抽象层建立关联。假设现在有这样的分类:电脑 --- 联想电脑,戴尔电脑,神州电脑 --- 台式机,笔记本 --- 联想台式机,联想笔记本如果用继承的关系,类会特别多,增加品牌或者电脑类型也不好扩展。于是我们把它用三个维度划分。电脑 --- 品牌 --- 类型原创 2016-05-28 23:06:37 · 594 阅读 · 0 评论 -
Java设计模式(七):代理模式Proxy(静态代理模式+动态代理模式)
静态代理package com.iter.devbox.staticProxy;public interface Star { public void sing();}package com.iter.devbox.staticProxy;public class RealStar implements Star { @Override publi原创 2016-05-27 21:53:19 · 608 阅读 · 0 评论 -
Java设计模式(六):适配器模式Adapter
什么是适配器模式? 将一个类的接口转换为客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式中的角色目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。需要适配的类(Adaptee):需要适配的类或适配者类。适配器(Adapter):通过包装一个需要适配的对象,把原原创 2016-05-27 19:40:40 · 844 阅读 · 0 评论 -
Java设计模式(五):建造者模式Builder
场景我们要建造一个复杂的产品。比如:神舟飞船、iphone。这个复杂的产品的创建,有这样一个问题需要处理:装配这些子组件是不是有个步骤问题?实际开发中,我们所需要的对象构建时,也非常复杂,有很多步骤需要处理时。建造者模式的本质分离了对象子组件的单独构建(由Builder来负责)和装配(由Director)来负责。从而可原创 2016-05-27 19:04:16 · 434 阅读 · 0 评论 -
Java设计模式(十一):外观模式(门面模式)Facade
1.概念为子系统中的一组接口提供一个统一接口。Facade模式定义了一个高层接口,这个接口使得这子系统更容易使用。2.UML3.代码下面是一个具体案例的代码:package com.iter.devbox.facade;/** * 子系统角色中的类 * @author Shearer * */public class M原创 2016-06-01 18:00:52 · 668 阅读 · 0 评论 -
Java设计模式(十):装饰者模式Decorator
装饰者模式:动态地将责任附加到对象上,若要扩展对象,装饰者模式提供了比继承更弹性的替代方案要点: 装饰者与被装饰者拥有共同的超类,继承的目的是继承类型,而不是行为装饰者包含一个超类的对象,这样,可以在被装饰者行为前或者行为后加上新的行为,甚至取代原有的行为装饰者会使程序中出现很多小类,增加使用难度使用场景:对象由主体+许多可选的部件或者功能构成,使用继承或者接口会产生很原创 2016-06-01 17:53:07 · 619 阅读 · 0 评论 -
Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
简单工厂模式package com.iter.devbox.factory.simplefactory;public interface Car { public void run();}package com.iter.devbox.factory.simplefactory;public class Audi implements Car { public void ru原创 2016-05-23 17:39:46 · 562 阅读 · 0 评论