一、单例模式:即一个类由始至终只有一个实例。有两种实现方式
(1)定义一个类,它的构造方法是私有的,有一个私有的静态的该类的变量在初始化的时候就实例化,通过一个公有的静态的方法获取该对象。
//单例模式的第一种形式
public class Singleton01 {
// 私有的静态属性
private static Singleton01 instance = new Singleton01();
// 私有的构造方法
private Singleton01() {
}
// 公有的静态方法
public static Singleton01 getInstance() {
return instance;
}
}
(2)改进后的
public class Singleton02 {
// 私有的静态的类变量
private static Singleton02 instance = null;
// 私有的构造方法
private Singleton02() {
}
// 静态的公有的方法
public static Singleton02 getInstance() {
if (instance == null) {
instance = new Singleton02();
}
return instance;
}
}
二、工厂模式:生产不同对象的公共接口
(1) 产品接口
//产品接口
public interface Product {
}
(2)产品接口的实现类
//洗衣机
public class Washer implements Product {
public Washer(){
System.out.println("洗衣机被制造了!");
}
}
//空调
public class AirCondition implements Product {
public AirCondition(){
System.out.println("空调被制造!");
}
}
(3)工厂接口
//工厂接口
public interface Factory {
//生产产品
Product produce(String productName);
}
(4)工厂的实现类
//实现工厂
public class TestFactory implements Factory {
//生产产品
public Product produce(String productName) {
if (productName.equals("Washer")) {
return new Washer();
}
if (productName.equals("AirCondition")) {
return new AirCondition();
}
return null;
}
public static void main(String[] args) {
TestFactory testFactory = new TestFactory();
testFactory.produce("Washer");
testFactory.produce("AirCondition");
}
}