设计模式 - 简单工厂模式【附代码】

(所有源码均在:https://github.com/zongzhec/JavaPractise

目录

生活中的例子

Java中的描述

简单工厂类的作用

特点

优点

缺点

源码


简单工厂模式

生活中的例子

无工厂:手工
    缺点:麻烦,对每个人要求比较高
    优点:个性化

工厂:生产产品
    优点:批量生产,使用者比较方便
    缺点:不易定制

Java中的描述

Java中当创建对象比较麻烦时,或者是需要批量生产对象时,可以交给“工厂类”来生产。

简单工厂类的作用

生产Java对象,一般是用来生产某个接口的实现类对象。
好处:把对象的使用者与创建者分离,把使用者与具体的实现类解耦合。

特点

1. 有一个接口;
2. 一系列的实现类;
3. 一个工厂类,有一个生产对象的方法

优点

1. 简单

缺点

1. 如果增加接口的实现类,需要修改工厂类代码。违反了面向对象的开发原则——“对修改关闭,对扩展开放”。

源码

package zongzhe.design_pattern.simple_factory;

public class SimpleFactDemo {
    public static void main(String[] args) {
        // 没有工厂的时候
        BMW bmw = new BMW();

        // 使用工厂类
        Car car = SimpleFactory.getCar("BMW");
        car.run();
    }
}

interface Car {
    void run();
}

class BMW implements Car {

    @Override
    public void run() {
        System.out.println("BMW");
    }
}

class Benz implements Car {

    @Override
    public void run() {
        System.out.println("Benz");
    }
}

class Audi implements Car {

    @Override
    public void run() {
        System.out.println("Audi");
    }
}

class SimpleFactory {
    public static Car getCar(String type) {
        switch (type) {
            case "BMW":
                return new BMW();
            case "Benz":
                return new Benz();
            case "Audi":
                return new Audi();
            default:
                return null;
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值