由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的设计模式
例子:一家工厂可以生产手机和电脑。
public class 工厂设计模式 {
public static void main(String[] args) {
//使用者和被使用者耦合,产生依赖以后,当被使用者改变时,会影响使用者
//工厂模式降低两者之间的耦合
Product phone = Factory.getProdect("phone");
phone.work();
}
}
class Factory{
public static Product getProdect(String name) {
if(name.equals("phone")) {
return new Phone();
}else if(name.equals("compute")) {
return new Computer();
}else
return null;
}
}
interface Product{
public void work();
}
class Phone implements Product{
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println("生产手机");
}
}
class Computer implements Product{
@Override
public void work() {
// TODO Auto-generated method stub
System.out.println("生产电脑");
}
}
Factory类是主要的类,首先有一个静态方法,它既能逻辑判断,又能生产产品。缺陷:如果有新产品出现,Factory类要改变,代越来越庞大,难以维护。