设计模式——简单工厂模式
简单工程模式属于创建型模式。创建型模式对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。减低系统的耦合度,让设计更方便易于修改和扩展
简单工厂模式定义
该模式中创建实例的方法通常是静态方法,因此又被称为静态工厂方法模式
要点:如果需要什么,只需要传入一个正确的参数就可以获取所需要的对象,而不需要知道其创建细节。要点在于当用户需要什么的时空后,只需要传入正确的参数就可以获得所需对象,而无需知道其创建细节
简单工厂模式:定义一个工厂类,他可以根据参数的不用返回不同类的实例,被创建的实力通常都具有共同的父类
简单工厂模式结构和实现
3.3.1 简单工厂模式结构
简单工厂模式主要有三个主要角色
**1.Factory(工厂角色):**简单工厂模式的核心,负责实现创建所有产品实例的内在逻辑。工厂类可以被外界直接调用,创建所需产品对象。在工厂类中提供了金泰的工厂方法factoryMethod(),他返回类型为抽象产品类型
2.Product(抽象产品):工厂类创建的所有对象的父类。封装了各种产品的公共方法,他的引入提高了系统灵活性
3.ConcreteProduct(具体产品角色):
3.3.2 简单工厂模式的实现
抽象产品类
public abstract class Pruduct{
//所有产品类的公共业务方法
public void methodSame(){
//公共方法的试下
}
public abstract void methodDiff();
}
具体产品类:
public class ConcreteProduct extends Product{
//实现业务方法
public void methodDiff(){
}
}
工厂类
public class Factory{
//静态工方法
public static Product getProduct(String arg){
Product product = null;
if (arg.equalsIgnoreCase("A")){
product = new ConncreteProductA();
}
else if (arg.equalsIgnoreCase("B")){
product = new ConncreteProductB();
}
return product;
}
}
客户端
public class Client{
public static void main(String[] args){
Product product;
product = Factory.getProduct("A");
product.methodSame();
product,methedDiff();
}
}