zoukankan      html  css  js  c++  java
  • 设计模式-简单工厂

    简单工厂

    定义:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。

    使用场景:我们明确地计划不同条件下创建不同实例时。

    缺点:每次需要新增产品都需要修改工厂类,不符合开闭原则。

    代码示例:

    public interface Shape {
    
        void draw();
    }
    
    public class Circle implements Shape {
        @Override
        public void draw() {
            System.out.println("我会画");
        }
    }
    
    public class Rectangle implements Shape {
        @Override
        public void draw() {
            System.out.println("我会画矩形");
        }
    }
    
    public class Square implements Shape {
        @Override
        public void draw() {
            System.out.println("我会画正方形");
        }
    }
    
    public class ShapeFactory {
    
        public static Shape getShape(String shapeType){
            if(shapeType==null){
                return null;
            }else if("CIRCLE".equalsIgnoreCase(shapeType)){
                return new Circle();
            }else if("SQUARE".equalsIgnoreCase(shapeType)){
                return new Square();
            }else if("RECTANGLE".equalsIgnoreCase(shapeType)){
                return new Rectangle();
            }
            return null;
        }
    }
    
    public class FactoryDemo {
    
        public static void main(String[] args) {
            ShapeFactory.getShape("circle").draw();
        }
    }
    
    

    注意事项:作为一个创建类模式,任何在创建复杂对象的地方,都可以使用这个模式。而只需要new就能完成创建的简单对象,无需使用工厂模式。

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    学习进度笔记13
    学习进度笔记12
    学习进度笔记11
    学习进度笔记10
    学习进度笔记9
    《架构之美》读书笔记1
    学习进度笔记8
    电话拨号盘(带触摸振动反馈)
    堆排序(小根堆)
    图论起步(长期更新)
  • 原文地址:https://www.cnblogs.com/javammc/p/14938648.html
Copyright © 2011-2022 走看看