package factory_pattern;
/*
* 设计模式
* --工厂模式(多用来提供API)
*/
public class FactoryPattern {
public static void main(String[] args) {
IFactory f=new Factory();
Model product=f.getProduct("可乐");
product.createProduct();
Model product1=f.getProduct("芬达");
product1.createProduct();
Model product2=f.getProduct("山泉");
product2.createProduct();
}
}
/*
* 使用接口实现工厂模式(多态)
*/
interface Model{
public void createProduct();
}
/*
* 子类实现同一个接口的方法,不同的实现
*
* 工厂中的生产线
*/
class Product1 implements Model{
@Override
public void createProduct() {
System.out.println("Product1"+"可乐");
}
}
class Product2 implements Model{
@Override
public void createProduct() {
System.out.println("Product2"+"芬达");
}
}
class Product3 implements Model{
@Override
public void createProduct() {
System.out.println("Product3"+"山泉");
}
}
/*
* 通过工厂中介找到对应的产品线
*/
interface IFactory{
public Model getProduct(String pname);
}
class Factory implements IFactory{
@Override
public Model getProduct(String pname) {
if(pname.contentEquals("可乐")) {
return new Product1();
}else if(pname.contentEquals("芬达")) {
return new Product2();
}else if(pname.contentEquals("山泉")) {
return new Product3();
}else {
return null;
}
}
}
设计模式 --工厂模式
于 2021-11-21 18:48:17 首次发布