设计模式: 单例 工厂

1、设计模式:设计模式就是一种程序的思想的标准,一句话,把简单的问题代码复杂化。

单例模式:

package com.xingxue.demo1;

/**
 * 1、构造器私有化,不让外部调用
 * 2、定义一个私有静态的的当前对象,内存上永远只有一份
 * 3、提供一个公有的静态方法,根据实际情况来创建对象。
 * 
 *  懒汉式
 * @author Administrator
 *
 */
public class Singleton2 {

    private Singleton2() {}

    private static Singleton2 single = null;

    public static Singleton2 getInstence() {
        if(single == null) {
            single = new Singleton2();
            return single;
        }else {
            return single;
        }
    }

}
package com.xingxue.demo1;

/**
 * 条件式    非条件式
 * 饿汉式   
 * @author Administrator
 *
 */
public class Singleton3 {

    //构造器私有化
    private Singleton3() {}

    private static Singleton3 single = new Singleton3();

    private int num = 100;

    public static Singleton3 getDanli() {
        return single;
    }

}

单例模式就是每次通过调用方法得到对象,目的在于每次获取的对象都是同一个,在项目当中使用的频率相当高,理念必须掌握。

工厂模式:
工厂模式的原型就是现实当中的工厂生产模式,简单来说就是我想要一部车,我们自己创建车,我找工厂帮我生产,对于我来说。我只需要找到工厂,调用工厂生产车的方法,就可以拿到一部车的对象
这里写图片描述

简单工厂是用于生产单个产品

这里写图片描述

package com.xingxue.simplefactory;

public class CarFactory {

public Car createCar(int index) {
    Car car = null;
    if(index == 1) {
        car = new Benz();

    }else if(index == 2) {
        car = new BaoMa();

    }else if(index == 3) {
        car = new Audi();

    } else if(index == 4){
        car = new ChangAn();
    }

    return car;
}

package com.xingxue.simplefactory;

public class Test {

public static void main(String[] args) {

    CarFactory fac = new CarFactory();

// Audi audi = fac.createAudi();
// BaoMa baoma = fac.createBaoMa();
// Benz b = fac.createBenz();

    Car car = fac.createCar(1);
    car = fac.createCar(2);
    car = fac.createCar(3);

    car = fac.createCar(4);

    car = fac.createCar(4);

}

}

产品必须有个父类,来统一接口

抽象工厂:
这里写图片描述

抽象工厂解决的是产品系列的问题,对用使用者值关心找那个工厂,而不用关心对象的生产过程,

猜你喜欢

转载自blog.csdn.net/sky274548769/article/details/80570677