码迷,mamicode.com
首页 > 编程语言 > 详细

javaSE中的GOF设计模式

时间:2017-10-12 12:14:00      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:多个   并且   交流   之间   style   etc   算法   适配器模式   模式   

javaSE中的GOF设计模式

这里就javaSE中常用的设计模式进行一个总结。

什么是设计模式?

能够被重复利用的解决方案就是设计模式。

常用的设计模式有哪些?

常用的设计模式有GOF设计模式和javaEE设计模式。

GOF设计模式有哪些类型?

- 对象创建型   是在对象创建过程中的设计模式。例如:单例模式

- 结构型 是用更多的类,更多的方法、对象组建一个更大的结构。例如:适配器模式、装饰器模式

- 行为型  涉及到行为、算法的设计模式。例如:策略模式

javaSE中的GOF设计模式  

- 集合中 迭代子模式、策略模式

  迭代子模式:在集合中,所有collection接口以及他的子接口都实现了iterable接口,意味着这些类都可以进行迭代。迭代子模式是说不需要知道底层的具体的存储结构和存储细节,统一面向Iterator接口进行迭代。例如:HashSet底层是哈希散列表的数据结构,TreeSet底层是二叉树的数据结构,ArrayList底层是数组,LinkedList底层是链表,但是他们都可以进行迭代,就是说不需要知道底层的存储细节,统一面向Iterator接口进行迭代。

  策略模式:比较器互换体现了策略模式。在TreeSet中有两种方案实现排序。方案一是,在实体类中实现Comparable接口,重写compareTo方法,这种方法是一种侵入式的方法,并且每次修改比较规则时都需要对源代码进行修改,所以不推荐这种方法;方案二是,另外创建一个比较器类,实现Comparator接口,重写compare方法,采用这种方法可以创建多个比较器,需要使用哪个比较规则就传入哪个比较器到TreeSet中,这种比较器互换的思想正是体现了策略模式。

 

- io中 适配器模式、装饰器模式

  适配器模式:在io中有很多地方体现了适配器模式。它的原理是:适配器模式是有一个超级接口,超级接口上有很多个抽象方法,有一个实现类只需要使用某个方法,如果直接实现超级接口的话,就需要将所有的方法全部实现,这种代码是非常丑陋的;这时候超级接口和实现类之间加一个适配器的抽象类,由适配器的抽象类去实现超级接口,将所有的方法实现了,只将实现类需要使用的方法设为abstract的,由实现类去继承适配器抽象类,这时候就只需要将适配器的抽象类实现了就可以了,这种代码是非常优雅的。除此之外,在servlet中也使用到了适配器设计模式,servlet的超级接口中有五个方法service、init、desotry、getServletInfo、getServletConfig,如果直接继承servlet接口就需要将这五个方法全部实现,而我们一般只使用service方法,所以在这里由GenericServlet实现servlet接口,将service以外的方法实现只留下service的抽象方法由我们去重写,这就体现了适配器模式的思想。

  装饰器模式:io中的关闭流的时候,只需要关闭高级流,低级流就会自动被调用,这里的源代码体现出了装饰器模式。装饰模式就是在原来的类上进行修饰,将功能进行扩展。

 欢迎交流 张先生 zg_199101@163.com

javaSE中的GOF设计模式

标签:多个   并且   交流   之间   style   etc   算法   适配器模式   模式   

原文地址:http://www.cnblogs.com/popcoder/p/7655356.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!