设计模式

引言

在学习的过程中,经常会看一些源码,不管是JDK的源码还是各种开源库的源码,在阅读源码的过程中体会作者的设计思想,了解实现的原理,同时还能学习到一些编程技巧以及帮助自己形成良好的编程风格。而且,像JDK和一些开源库的作者在设计的时候都使用了一些设计模式。因此,随着源码的逐渐增多,库的体系不断变大,在阅读的时候如果没能体会到作者设计时使用的设计模式的话,对于理解作者背后的设计思想,甚至对代码的理解都会造成一定的困扰。Java中的io库就是一个很好的例子,初学者面对几十个类的时候可能会茫然不知所措。所以,这一段时间开始着眼于设计模式,以每周一个模式的计划进行学习与总结。

概述

什么是模式呢?简单来说就是套路。习武之人有自己的套路,按照前人编写的武功秘籍上的套路一招一式的练习,虽然可能达不到武林高手的境地,但是对付一些地痞小流氓是绰绰有余。编程中的模式也是一样,模式就是面对问题时解决问题的套路。虽然问题可能多的数不清,但是人们在解决问题的过程中发现一些解决方法很具有代表性,对这些解决方法进行灵活的改动就可能解决一类问题。这就是设计模式。
设计模式大概二十多种,这么多的模式按照解决问题的类型可分为以下几种:
- 创建模式:是对类的实例化过程的抽象化,也就是如何创建一个对象。包括七种设计模式;
- 结构模式:用来对一个模块中的类或对象进行合理的组织。包括八种设计模式;
- 行为模式:是对在不同对象之间划分责任与算法的抽象化,它不仅仅是关于类和对象的,还关于它们之间的相互作用。包括十二种设计模式。

接下来简单介绍下每种模式,并给出详细解释的链接。(一个个来,不着急:-)

创建模式

创建模式用来描述如何创建一个对象。这里有个小问题,在Java中有哪几种方式用来创建一个对象呢?
据我所知有这几种:
- 使用new关键词创建对象;
- 利用反射中的newInstance方法创建一个对象;
- 通过反序列化创建一个对象;
- 调用对象的clone方法;
- 还有就是这里要介绍的创建型设计模式。

1.简单工厂模式(Simple Factory Pattern)
简单工厂模式就是类的创建模式,也叫静态工厂方法模式(Static Factory Method Pattern)。简单工厂模式是由一个工厂对象决定创建出哪种产品类的实例。
2.工厂方法模式(Factory Method Pattern)
工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。
3.抽象工厂模式(Abstract Factory Pattern)
抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品的具体类型的情况下,创建多个产品族中的产品对象。

你可能感兴趣的:(Java设计模式)