Java设计模式之简单工厂模式

工厂模式

工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
工厂模式根据抽象程度的不同又可以细分为:

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
简单工厂模式

简单工厂模式又叫静态工厂模式,它并不是GoF23种设计模式之一。在我们日常的编码过程中,它经常会被使用到,而且思想也非常简单,与其说它是一种设计模式,或许称之为一种编程习惯更为恰当。不过这三种工厂模式是一个逐渐抽象的过程,所以还是有必要先讲一下简单工厂模式。

简单工厂模式的核心思想就是:有一个专门的类来负责创建实例的过程。

首先我们来看一段示例程序。这段示例程序的作用是制造iPhone手机。
简单工厂模式类图
产品类:

abstract class IPhone() {
    public IPhone() {
    }
}  
public class IPhone4 extends IPhone {
    public IPhone4() {
        System.out.println("制造了IPhone4...");
    }
}  
public class IPhone5 extends IPhone {
    public IPhone5(){
        System.out.println("制造了IPhone5...");
    }
}  
工厂类:
public class IPhoneFactory() {
    public IPhone createIPhone(int type) {
        switch (type) {
        case 4:
            return new IPhone4();
        case 5:
            return new IPhone5();
        default:
            System.out.println("造不了...");
            return null;
        }
    }
}  
客户类:
public class Customer {
    public static void main(String[] args) {
        IPhoneFactory iPhoneFactory = new IPhoneFactory();
        IPhone iPhone4 = iPhoneFactory.createIPhone(4);
        IPhone iPhone5 = iPhoneFactory.createIPhone(5);
        IPhone iPhone8 = iPhoneFactory.createIPhone(8);
    }
}
输出结果如下:
制造了iPhone4...
制造了iPhone5...
造不了...

简单工厂模式总结:

  • 优点
    工厂类能够根据用户给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时只需要告诉工厂类去创建需要的实例,而不必知道这些实例对象是如何创建的。
  • 缺点
    从上面的例子不难看出来,现在的工厂造不了iPhone8,而如果要造iphone8,那相对应需要修改IPhoneFactory类,如果IPhoneFactory类除了问题,所有的客户都会受到影响。更重要的是,简单工厂模式违背了”开闭原则”,可扩展性和稳定性都比较差。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值