java 工厂模式

不使用模式:

/**
 * Created by Torres on 17/2/21.
 *
 */
class BWMCar {
    public BWMCar() {
        System.out.println("生产一辆BWM");
    }
}

class AUDICar {
    public AUDICar() {
        System.out.println("生产一辆Audi");
    }
}

public class Client1 {
    public static void main(String[] args) {
        BWMCar bwmCar = new BWMCar();
        AUDICar audiCar = new AUDICar();
    }
}

简单工厂模式

package FactoryPattern;

/**
 * Created by Torres on 17/2/21.
 * 简单工厂
 */
abstract class Car {
    public Car() {
    }
}

class Audi extends Car {
    public Audi() {
        System.out.println("生产一辆Audi");
    }
}

class Bmw extends Car {
    public Bmw() {
        System.out.println("生产一辆bmw");
    }
}

class Factory {
    public Car createCar(String type) {
        switch (type) {
            case "audi":
                return new Audi();
            case "bmw":
                return new Bmw();
            default:
                break;
        }
        return null;
    }
}
public class Client2 {
    public static void main(String[] args) {
        Factory factory = new Factory();
        factory.createCar("audi");
        factory.createCar("bmw");
    }
}

工厂方法模式

package FactoryPattern;

/**
 * Created by Torres on 17/2/21.
 */

interface CarFactory {
    Car createCar();
}

class AudiFactory implements CarFactory {

    @Override
    public Car createCar() {
        return new Audi();
    }
}

class BwmFactory implements CarFactory {

    @Override
    public Car createCar() {
        return new Bmw();
    }
}

public class Client3 {
    public static void main(String[] args) {
        CarFactory bwmFactory = new BwmFactory();
        bwmFactory.createCar();
        CarFactory audifactory = new AudiFactory();
        audifactory.createCar();

    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 目录1.概念2.角色3.工厂执行的具体流程简单工厂模式(静态工厂方法)工厂模式抽象工厂模式4.分类5.总结6.学习...
    在挖坑的猿阅读 763评论 0 4
  • 为什么要使用工厂?考虑现实的一种情况,如果我们需要一件上衣,我们可以自己做,也可以去订做,如果要自己做,自己必须了...
    奔跑的笨鸟阅读 351评论 0 1
  • 1 场景问题# 1.1 导出数据的应用框架## 考虑这样一个实际应用:实现一个导出数据的应用框架,来让客户选择数据...
    七寸知架构阅读 6,841评论 6 75
  • 顾桐 “爸,就算你打死我我也没办法,你以为我愿意这样啊!” “败类,你这个败类,我咋生了你这个败类”爸爸怒吼的...
    blanck_chip阅读 741评论 0 1
  • 从前有一只小雪人在深山老林里迷了路,他好冷好饿啊。 走着走着他遇到了巫婆,问巫婆:“可以给我穿件衣服吗?”巫婆哈哈...
    小溪的溪阅读 519评论 2 6