在看这个工厂模式前,先理解下几种角色:
工厂类角色:该角色用来创建具体的功能产品。比如工厂富士康
抽象产品角色:这个就好比是现在这个富士康做电脑。那么就需要抽象出一个电脑的产品角色;
具体产品角色:具体产品角色需要实现抽象产品角色,比如联想、华硕等
然后可以直接告诉工程我想要一个联想电脑,然后工厂类角色就创建一个联想电脑给客户;
工厂类角色(有创建具体产品的能力):
public class Creator
//工厂类角色,这个是使用一个具体类来实现,这个就相当于将具体的那个笔记本通过这个工厂进行实现
{
public static Product createProduct(String string)
{
if("A".equals(string))
{
return new ConcreteProductA();
}
else if("B".equals(string))
{
return new ConcreteProductB();
}
return null;
}
}
抽象产品角色:
public abstract class Product
//这个是一个抽象产品角色
/*
* 担任这个角色的类是简单工厂模式所创建的对象的父类,或它们共同拥有的接口。
* 抽象产品角色可以用一个接口或者抽象类实现
*/
{
}
具体产品角色:
public class ConcreteProductA extends Product
//这个是一个具体产品角色
{
}
客户端:告诉工厂角色,你要给我一个A,那么工厂就有创造的能力那么就创造出了一个A(实体对象)返回给用户
public class Client
{
public static void main(String[] args)
{
Product productA = Creator.createProduct("A");
System.out.println(productA.getClass().getName());
Product producB = Creator.createProduct("B");
System.out.println(producB.getClass().getName());
}
}