美文网首页
设计模式(3)-工厂模式

设计模式(3)-工厂模式

作者: zhglance | 来源:发表于2019-06-19 15:35 被阅读0次

工厂模式主要解决接口选择的问题,相对比较简单,而且常用。

一、需求举例:

项目中需求开发应用场景:
1.如果初级工程师能够完成,就让初级工程师完成,否则交给中级工程师;
2.如果中级工程师能够完成,就让中级工程师完成,否则交给高级工程师;
3.如果高级工程师能够完成,就让高级工程师完成,否则交给Top工程师拒绝需求;

二、代码实例

父类接口:Engineer.java

package com.lance.factory;

public interface Engineer {

    int EASY = 1;
    int MIDDLE = 2;
    int DIFFICULT = 3;

    default void develop(String program) {
        System.out.println("Engineer default refuse " + program);
    }
}

初级工程师类:JuniorEngineer.java

package com.lance.factory;

public class JuniorEngineer implements Engineer{

    @Override
    public void develop(String program) {
        System.out.println("Junior Engineer finish " + program);

    }

}

中级工程师类: IntermediateEngineer.java

package com.lance.factory;

public class IntermediateEngineer implements Engineer {

    @Override
    public void develop(String program) {
        System.out.println("Intermediate Engineer finish " + program);
    }
}

高级工程师类:SeniorEngineer.java

package com.lance.factory;

public class SeniorEngineer implements Engineer{

    @Override
    public void develop(String program) {
        System.out.println("Senior Engineer finish " + program);

    }
}

工程师工厂类:EngineerFactory.java

package com.lance.factory;

public class EngineerFactory {

     static Engineer getEngineer(int difficulty) {
        Engineer engineer = null;

        switch (difficulty) {
            case Engineer.EASY:
                engineer = new JuniorEngineer();
                break;
            case Engineer.MIDDLE:
                engineer = new IntermediateEngineer();
                break;
            case Engineer.DIFFICULT:
                engineer = new SeniorEngineer();
                break;
            default:
                engineer = new Engineer() {
                };
                break;


        }



        return engineer;
    }
}

工厂模式主类: FactoryPattern.java

package com.lance.factory;

public class FactoryPattern {
    public static void main(String[] args) {


        System.out.println("==========start==========");
        Engineer engineer = EngineerFactory.getEngineer(Engineer.EASY);
        engineer.develop("easy program");

        System.out.println("=======================");

        engineer = EngineerFactory.getEngineer(Engineer.MIDDLE);
        engineer.develop("middle program");

        System.out.println("=======================");

        engineer = EngineerFactory.getEngineer(Engineer.DIFFICULT);
        engineer.develop("difficult program");

        System.out.println("=======================");

        engineer = EngineerFactory.getEngineer(100);
        engineer.develop("too difficult program");

        System.out.println("==========end==========");

    }
}

输出结果:

==========start==========
Junior Engineer finish easy program
=======================
Intermediate Engineer finish middle program
=======================
Senior Engineer finish difficult program
=======================
Engineer default refuse too difficult program
==========end==========

相关文章

  • iOS设计模式(5)策略模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(6)模板模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(7)建造者模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(4)抽象工厂模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • iOS设计模式(1)简单工厂模式

    设计模式系列文章 《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器模式》《iOS设计模式(4)抽象工厂...

  • iOS设计模式(8)外观模式

    设计模式系列文章 《iOS设计模式(1)简单工厂模式》《iOS设计模式(2)工厂模式》《iOS设计模式(3)适配器...

  • 【重温设计模式】工厂设计模式

    一.介绍 工厂设计模式的分类 1.简单工厂模式2.工厂方法模式3.抽象工厂模式 工厂设计模式在工作中的应用 1.s...

  • 设计模式四、抽象工厂模式

    系列传送门设计模式一、单例模式设计模式二、简单工厂模式设计模式三、工厂模式设计模式四、抽象工厂模式 抽象工厂模式 ...

  • 工厂模式

    java设计模式-工厂模式 工厂模式: 工厂模式是java设计模式里最常用的设计模式之一。 工厂模式属于创建型模式...

  • 设计模式之工厂模式

    设计模式之工厂模式 标签(空格分隔): 设计模式 工厂模式 设计模式的感念 设计模式的应用 工厂设计模式的产生 工...

网友评论

      本文标题:设计模式(3)-工厂模式

      本文链接:https://www.haomeiwen.com/subject/nvetqctx.html