美文网首页
笔记:SpringBoot 简单工厂模式

笔记:SpringBoot 简单工厂模式

作者: denkbug | 来源:发表于2019-07-23 20:23 被阅读0次

    简单工厂模式:由一个工厂对象决定创建出哪一种产品类的实例。创建型模式。 简单工厂模式不是 23 种里的一种,简而言之,就是有一个专门生产某个产品的类。
    java.util.Calendar.createCalendar

    https://www.jianshu.com/p/e55fbddc071c

    1. 工厂类集中了所有实例(产品)的创建逻辑,一旦这个工厂不能正常工作,整个系统都会受到影响;
    2. 违背“开放 - 关闭原则”,一旦添加新产品就不得不修改工厂类的逻辑,这样就会造成工厂逻辑过于复杂。
    3. 简单工厂模式由于使用了静态工厂方法,静态方法不能被继承和重写,会造成工厂角色无法形成基于继承的等级结构。

    作者:Carson_Ho
    链接:https://www.jianshu.com/p/e55fbddc071c
    来源:简书
    简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

    https://www.runoob.com/design-pattern/abstract-factory-pattern.html

    //鼠标产品
    public interface Mouse {
        void printBrand();
    }
    //戴尔鼠标
    public class DellMouse implements Mouse {
        @Override
        public void printBrand() {
            System.out.println("DELL MOUSE");
        }
    }
    //惠普鼠标
    public class HpMouse implements Mouse {
        @Override
        public void printBrand() {
            System.out.println("HP MOUSE");
        }
    }
    
    //鼠标工厂
    public class MouseFactory {
        public static Mouse getMouse(String brand) {
            switch (brand) {
                case "HP":
                    return new HpMouse();
                case "DELL":
                    return new DellMouse();
                default:
                    throw new RuntimeException("NO SUCH MOUSE");
            }
        }
    }
    
    //Application.java
    @SpringBootApplication
    public class App {
        public static void main(String[] args) {
            SpringApplication.run(App.class);
            MouseFactory.getMouse("DELL").printBrand();
        }
    }
    

    相关文章

      网友评论

          本文标题:笔记:SpringBoot 简单工厂模式

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