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就能完成创建的简单对象,无需使用工厂模式。

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    函数调用堆栈过程
    opencv相关的一些资料
    Debug模式下加快运行速度的一些方法
    目标检测的资料汇总
    Unity常见词汇查询表
    迷宫遍历板子
    Codeforces Round #739 (Div. 3)
    Codeforces Round #737 (Div. 2)
    快乐的一天从AC开始 | 20210810 | CF1554D
    快乐的一天从AC开始 | 20210809 | CF1554C
  • 原文地址:https://www.cnblogs.com/javammc/p/14938648.html
Copyright © 2011-2022 走看看