设计模式
文章平均质量分 87
小猴子豆芽菜
一名90后程序猿,现就任于ThoughtWorks,从事软件开发、大数据开发,同时也是一位健身、羽毛球爱好者。
展开
-
java设计模式之代理模式:静态代理和动态代理
1.代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。简单地说就是为其他对象提供一种代理以控制对这个对象的访问。2.代理模式的作用:在某些情况下,一个对象不能或者不适合直接引用另一个对象,这种情况下就可以用代理类作为中间媒介间接地引用目标对象,代理模式作为中介在其中起到了隔离作用。同时还可以作为被代理类的拓展,对其功能进行拓展加入根据需要增加功能。而代理模式原创 2018-02-02 14:29:35 · 200 阅读 · 0 评论 -
java设计模式之工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
1、工厂模式的作用和目的: 降低代码的耦合性,并提高代码的复用率。在一个很大的项目中假如很多地方都要用到类A,那么要new很多次A,一旦类A的需求 改变,那么就要修改很多地方。不仅耗时费力而且在修改的过程中极易因修改代码而产生bug。如果利用工厂模式的话不仅可以提高 代码的复用率,而且当需要修改代码时,只需要对工厂类和具体的实现类进行少量修改即可。设计需求:消费链由产品--工厂-原创 2018-01-29 17:34:47 · 227 阅读 · 0 评论 -
java设计模式之单例模式的四种实现方式
一、饿汉模式 package disignmodel;public class HungrySingleton { private HungrySingleton() { } private static final HungrySingleton singleton = new HungrySingleton(); public HungrySin原创 2018-01-29 14:27:44 · 241 阅读 · 0 评论 -
java设计模式之单例模式
单例模式:采用单例模式创建的类每次只能产生一个实例对象;设计思路:①将构造器私有化,防止外部调用产生实例; ②定义一个私有的静态属性用于实例化对象; ③定义一个静态方法,该方法内返回②中已被实例化的静态私有属性; ④外部类通过 类.静态方法 来获取去需要进行实例化的类对象,这样不管怎样调用每次都只能产生一个实例化对象。package disignmodel;pu原创 2018-01-29 13:53:39 · 251 阅读 · 0 评论 -
代理模式之静态代理
代理模式代理模式为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类处理、以及委托类执行完请求后的后续处理。从图中可以看出,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject)形成一个“品”字结构。 根据代理类的生...原创 2019-04-07 14:57:19 · 261 阅读 · 0 评论 -
代理模式之JDK动态代理
JDK动态代理上一篇博文静态代理介绍了静态代理的简单实现,以及静态代理的缺点:代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。如果接口增加一个方法,除了所有实现类需要实现这个方法外,所有代理类也需要实现此方法。JDK动态代理的优点代理对象不需要实现接口,这样就不会有众多的代理类;利用JDK生成代理...原创 2019-04-07 18:00:59 · 465 阅读 · 0 评论 -
代理模式之Cglib动态代理
Cglib动态代理前两篇博文静态代理和JDK动态代理,他们各有优缺点,JDK动态代理缺点:目标类必须实现的某个接口,如果某个类没有实现接口则不能生成代理对象;只能代理接口,要代理类需要使用第三方的CLIGB等类库;Cglib动态代理则没有对被代理对象必须实现接口的要求,cglib生成的代理类会继承被代理类,并在代理类中对代理方法进行强化处理(前置处理、后置处理等)。实例演示被代理...原创 2019-04-07 20:14:44 · 771 阅读 · 0 评论