您的位置:首页 > 编程语言 > Java开发

java设计模式心得

2016-04-19 17:15 369 查看
    java的设计模式有23种。我现在知道的有4种,工厂模式、单列模式、观察者和装饰模式,以后会在这篇博客下陆续补充。说起java的设计模式,在还没接触这些模式以前,我一直都不知道原来java代码可以按照一些模式来规范和优化。设计模式有很多种好处,下面我浅谈几种设计模式。

  1、工厂模式

   故名思义,这种设计模式和工厂有关。简单的来说,就是不在当前类里直接创建另一个类的对象,而是通过另一个类(下面把另一个类称为工厂类)来代替当前类创建对象,然后再把这个对象传给当前类。需要说明的是,这个工厂类不必在当前类中创建对象,而是通过类名调用其类中静态方法来代替创建当前类需要的对象。这种方式即为工厂模式。

下面通过代码演示

/**
 * 工厂类
 * @param args
 */

public class Factory {
public static Text_1 createText_1() {
Text_1 t = new Text_1();
return t;
}

}

/**
* 工厂类代替创建的类
* @param args
*/

public class Text_1 {
public void show() {
System.out.println("我创建了");
}

}

/**
* 测试类
* @param args
*/

public class Text {
public static void main(String[] args) {
Text_1 t = Factory.createText_1();
t.show();
}

}

结果输出:我创建了。

这种模式的优点:易于代码的修改,列如当前类需要对象的类的构造方法发生变化,不需要去修改当前类的代码,只需要修改工厂类里的代码。

2、装饰模式

  装饰模式简单的来说,就是通过一个或多个装饰者去装饰被装饰者,从而达到装饰的效果。而这种方法是通过java的多态、实现接口和继承的方式实现的。

大体实现方式

1)需要定义一个接口,即被装饰者。

2)定义一个抽象装饰类去继承接口(被装饰者),这个抽象装饰类即为所有装饰类的父类。在这个抽象装饰类中关联接口(被装饰者),即在抽象装饰类的属性中声明这个接口。还要在构造方法中传入这个接口的实现类。

3)定义一个被装饰者类实现被装饰者接口。

4)定义一个或多个装饰类继承抽象装饰类(按实际需要)

5)创建一个被装饰类的对象,把该对象传入装饰类构造对象则实现装饰。

优点:解决一个工程里类过多的情况

3、单列模式

  当要求工程里只需要一个类仅能创建一个对象时,这时候需要用到单例模式。

大体实现方式:

1)将类的构造方法设为私有。

2)在类中定义静态方法create(),在create()方法中调用该类的构造函数,用逻辑实现create()方法只能调用一次构造方法。create()方法的返回值为该类的对象。

优点:科确保一个工程内要求只能创建一个对象的类只能创建一个对象。

4、观察者模式

  简单的来说,用一个类去观察另一个类;

  大体实现方式:

   1)定义一个被观察者类,其内定义一个Arraylist用于保存观察者对象。

   2)在被观察类中定义一个方法用于通知观察者。

   3)创建被观察者类对象。

   3)创建观察者对象,保存在被观察对象的Arraylist中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: