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

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    Python函数之冒泡算法
    Python内置函数之--open
    Python 基础5:内置函数一
    27、数组的操作
    26、字符串的操作
    25、求最大公约数和最大公倍数——循环
    24、输出九九口诀乘法表——循环
    查找【操作】
    04、结构体两种传参形式
    1、电脑联网小技巧:网络共享之台式机、笔记本、手机
  • 原文地址:https://www.cnblogs.com/javammc/p/14938648.html
Copyright © 2011-2022 走看看