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

JAVA学习笔记(五十七)- 常用设计模式

时间:2015-04-05 16:06:31      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:设计模式   单例模式   饿汉模式-懒汉模式   工厂模式   

单例模式

/*
 * 单例模式
 * 应用场合:有些对象只需要一个,此时可以使用单例模式
 * 作用:保证整个应用中某个实例有且只有一个
 * 类型:饿汉模式、懒汉模式
 */
public class Test04 {
    // 1.将构造方式私有化,不允许外界直接创建对象
    private Test04() {
    }

    // 2.创建类的唯一对象,使用private static修饰
    private static Test04 instance=new Test04();

    // 3.提供一个用于获取唯一实例的方法,使用public static修饰
    public static Test04 getInstance(){
        return instance;
    }
}

懒汉模式

/*
 * 懒汉模式
 * 区别:
 * 1.饿汉模式的特点,在类加载时会创建类的唯一实例,导致类加载比较慢,但运行时获取对象的速度较快,线程安全
 * 2.懒汉模式的特点,在第一次获取实例时会创建类的唯一实例,导致第一次获取时较慢,但类加载比较快,线程不安全
 * 
 */
public class Test05 {
    // 1.将构造方法私有化
    private Test05() {
    }

    // 2.声明类的唯一实例,但并未实例化
    private static Test05 instance;

    // 3.提供一个用于获取唯一实例的静态方法
    public static Test05 getInstance() {
        if(instance==null){
            instance=new Test05();//判断如果为空,则创建一个唯一的实例
        }
        return instance;
    }
}

工厂模式

/*
 * 工厂模式Factory Method
 * 简单工厂模式
 * 定义:建立一个工厂类,对实现了同一个接口的多个类进行实例化对象的操作
 */
public class Test06 {
    public static void main(String[] args) {
        Factory factory=new Factory();
        Moveable m1=factory.product("plane");
        Moveable m2=factory.product("bus");
        Moveable m3=factory.product("bike");
        m2.move();
    }
}

interface Moveable {
    public void move();
}

class Plane implements Moveable {

    @Override
    public void move() {
        System.out.println("马航死亡航班。。。");
    }
}

class Bus implements Moveable {

    @Override
    public void move() {
        System.out.println("昌河校车。。。");
    }
}

class Bike implements Moveable {

    @Override
    public void move() {
        System.out.println("捷安特自行车");
    }
}

/*
 * 生产产品的工厂类
 */
class Factory {
    public Moveable product(String need) {
        if (need.equals("plane")) {
            return new Plane();
        } else if (need.equals("bus")) {
            return new Bus();
        } else {
            return new Bike();
        }
    }
}

JAVA学习笔记(五十七)- 常用设计模式

标签:设计模式   单例模式   饿汉模式-懒汉模式   工厂模式   

原文地址:http://blog.csdn.net/wangzi11322/article/details/44887673

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