简介
使用工厂创建对象,不用关心怎么进行创建
只能创建一类共同属性的对象
一个工厂创建一个对象
主要模块:
- 抽象工厂
- 抽象产品
- 真实工厂
- 真实产品
例子
抽象工厂
//工厂接口
public interface PhoneFactory {
//生产手机
PhoneProduct newPhone();
}
抽象产品
//产品接口
public interface PhoneProduct {
//所有的手机都可以打电话
void call();
}
真实工厂(苹果工厂)
//苹果工厂需要实现 工厂接口
public class AppleFactory implements PhoneFactory {
@Override
public PhoneProduct newPhone() {
return new ApplePhone();
}
}
真实工厂(三星工厂)
public class SumFactory implements PhoneFactory {
@Override
public PhoneProduct newPhone() {
return new SumPhone();
}
}
真实产品(苹果手机)
//苹果产品,需要实现产品接口
public class ApplePhone implements PhoneProduct {
@Override
public void call() {
System.out.println("this is ApplePhone Call。。。。。。。。。");
}
}
真实商品(三星手机)
public class SumPhone implements PhoneProduct {
@Override
public void call() {
System.out.println("this is SumPhone Call ..........");
}
}
测试
public class Main {
public static void main(String[] args) {
//苹果商品
AppleFactory appleFactory = new AppleFactory();
PhoneProduct phone1 = appleFactory.newPhone();
phone1.call();//this is ApplePhone Call。。。。。。。。。
//三星商品
SumFactory sumFactory = new SumFactory();
PhoneProduct phone2 = sumFactory.newPhone();
phone2.call();//this is SumPhone Call ..........
}
}