工厂模式

介绍

工厂模式属于创建型模式,它提供了一种创建对象的最佳方式。

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

枚举实现工厂模式

public interface FoodFactory {

    Food makeFood();
}

  

public enum ChineseFoodFactory implements FoodFactory {

    A() {
        @Override
        public Food makeFood() {
            String bizNo = UUID.randomUUID().toString().replace("-","");
            return new ChineseFoodA().setBizNo(bizNo);
        }
    },

    B() {
        @Override
        public Food makeFood() {
            String bizNo = UUID.randomUUID().toString().replace("-","");
            return new ChineseFoodB().setClmedApplNo(bizNo);
        }
    }
}

  

@Data
@ToString(callSuper = true)
@Accessors(chain = true)
public class ChineseFoodA extends Food {

    private String bizNo;
}

  

@Data
@ToString(callSuper = true)
@Accessors(chain = true)
public class ChineseFoodB extends Food {

    private String clmedApplNo;
}

  

调用工厂方法

    @Test
    public void enumFactory_t2(){
        Food foodB = ChineseFoodFactory.B.makeFood();
        System.out.println(foodB.toString());
    }

  

 

posted on 2021-11-15 17:45  rabbit-xf  阅读(30)  评论(0)    收藏  举报