您的位置:首页 > 其它

《设计模式 系列》- 创建型模式 - 工厂方法

2017-12-20 00:00 357 查看

前言

本文包含几部分:

1.UML图

2.实现代码

3.模式分析

一、UML图



二、实现代码

产品类

public interface Product {
public void printProduct();
}

public class ConcreteProductA implements Product {

@Override
public void printProduct() {
System.out.println("This is ConcreteProductA");
}
}

public class ConcreteProductB implements Product {

@Override
public void printProduct() {
System.out.println("This is ConcreteProductB");
}
}

工厂类

public abstract class Creater {
public abstract Product factoryMethod(String type);

public abstract void anOperation();
}

public class ConcreteCreator extends Creater {

@Override
public Product factoryMethod(String type) {
Product product = null;
if (type.equals("A")) {
product = new ConcreteProductA();
} else {
product = new ConcreteProductB();
}
return product;
}

@Override
public void anOperation() {
// TODO Auto-generated method stub
}
}

调用程序类

public class Client {
public void buy(Product p) {
p.printProduct();
}

public static void main(String[] args) {
Client client = new Client();
ConcreteCreator factory = new ConcreteCreator();
Product product = factory.factoryMethod("A");
client.buy(product);
}
}


三、模式分析

工厂方法模式组成:

工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,用来创建产品
抽象产品角色:它一般是具体产品继承的父类或者实现的接口。
具体产品角色:工厂类所创建的对象就是此角色的实例。

缺点:每增加一个产品,就要修改工厂类代码,违反了开闭原则
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式