简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式使工厂模式家族中最简单实用的模式。
引入工厂模式之前:设计一个接口Product,有两个类Phone和Compute继承这个接口,然后在主类中实例化Phone,然后调用Phone类中的方法。
这样的设计导致:使用者被被使用者两者之间耦合,产生了依赖,当被使用者改变时会影响使用者
使用工厂模式来降低两者之间的依赖
public class Demo {
public static void main(String[] args) {
Product phone = new Phone();
phone.work();
}
}
interface Product{
public void work();
}
class Phone implements Product{
@Override
public void work() {
System.out.println("手机开始工作");
}
}
class Compute implements Product{
@Override
public void work() {
System.out.println("电脑开始工作");
}
}
引入工厂模式之后:
public class Demo {
public static void main(String[] args) {
//使用者被被使用者两者之间耦合,产生了依赖,当被使用者改变时会影响使用者
//使用工厂模式来降低两者之间的依赖
Product phone = ProductFactory.getProduct("phone");
if(null!=phone)
{
phone.work();
}
}
}
//工厂类
class ProductFactory{
public static Product getProduct(String name){
if("phone".equals(name))
{
return new Phone();
}
else if("compute".equals(name))
{
return new Compute();
}
else {
return null;
}
}
}
interface Product{
public void work();
}
class Phone implements Product{
@Override
public void work() {
System.out.println("手机开始工作");
}
}
class Compute implements Product{
@Override
public void work() {
System.out.println("电脑开始工作");
}
}