工厂设计模式

1.什么是工厂设计模式

工厂模式是一种创建型设计模式,它提供一种通用的接口来创建对象,但是让子类决定实例化哪个类。 工厂模式将对象的创建过程封装在一个工厂类中,避免直接调用构造函数,提高代码的灵活性和可维护性。 工厂模式实现了依赖倒置原则,即面向接口编程而不是面向实现编程。

2.为什么要使用工厂设计模式

在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。

使用工厂模式的好处


解耦
通过工厂模式可以把对象的创建和使用过程分割开来。比如说 Class A 想调用 Class B的方法,那么我们无需关心B是如何创建的,直接去工厂获取就行。


减少代码量,易于维护
如果我们直接new一个对象时,如果需要的对象构造方法比较复杂,那么可能需要一连串的代码去创建对象,如果在别的类中又需要创建该对象,那么代码的重复度肯定不小。通过工厂模式的话,我们把对象创建的具体逻辑给隐藏起来了,交给工厂统一管理,这样不仅减少了代码量,以后如果想改代码的话,只需要改一处即可,也方便我们日常的维护。

缺点

增加⼀个产品,需要实现对应的具体⼯⼚类和具体产品类;

每个产品需要有对应的具体⼯⼚和具体产品类;

3.直接进入正题,工厂设计模式代码展示

我这里是根据职位去审查该职位可以审批的假条

1.公布一个工厂实现接口

public interface Review {

    void review();
}

2.具体业务方法

public class TeamLeader implements Review{
    @Override
    public void review() {
        System.out.println("TeamLeader review");
    }
}

 

 

public class SourcingManager implements Review{
    @Override
    public void review() {
        System.out.println("SourcingManager review");
    }
}

3.工厂类

public interface RoleFactory {


    Review checkReview();

}

 

4.指向对应的工厂

public class SourcingManagerFactory implements RoleFactory{
    @Override
    public Review checkReview() {
        return new SourcingManager();
    }
}

 

public class TeamLeaderFactory implements RoleFactory{
    @Override
    public Review checkReview() {
        return new TeamLeader();
    }
}

 

 5.Test

Review sourcingManager = new SourcingManagerFactory().checkReview();
sourcingManager.review();
Review teamLeader = new TeamLeaderFactory().checkReview();
teamLeader.review();

你可能感兴趣的:(设计模式,java,开发语言)