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);
}
}
产品必须有个父类,来统一接口
抽象工厂:
抽象工厂解决的是产品系列的问题,对用使用者值关心找那个工厂,而不用关心对象的生产过程,