zoukankan      html  css  js  c++  java
  • 设计模式-工厂方法

    工厂方法

    定义:定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。核心工厂类不再负责产品创建,而是成为一个抽象工厂角色,仅负责工厂子类必须实现的接口实现,这样进一步抽象的好处是使得工厂方法模式可以使系统可以在不修改具体工厂角色的情况下引进新的产品。

    每一种工厂创建一种产品,避免了简单工厂中的if/else判断。

    代码示例:

    public abstract class AbstractFactory {
    
        public abstract Shape getShape();
    }
    
    public class ShapeFactory1 extends AbstractFactory {
    
        public ShapeFactory1(){}
    
        private static final ShapeFactory1 shapeFactory1=new ShapeFactory1();
    
        public static ShapeFactory1 getInstance(){
            return shapeFactory1;
        }
    
        public  Shape getShape( ){
            return new Circle();
        }
    }
    
    public class ShapeFactory2 extends AbstractFactory {
    
        public ShapeFactory2(){}
    
        private static final ShapeFactory2 shapeFactory2=new ShapeFactory2();
    
        public static ShapeFactory2 getInstance(){
            return shapeFactory2;
        }
    
        @Override
        public Shape getShape() {
            return new Triangle();
        }
    }
    

    测试:

     public static void main(String[] args) {
            ShapeFactory1 shapeFactory1 = ShapeFactory1.getInstance();
            Shape circle = shapeFactory1.getShape();
            circle.draw();
    
            Shape shape = ShapeFactory2.getInstance().getShape();
            shape.draw();
        }
    

    返回目录

    书山有路勤为径,学海无涯苦作舟
  • 相关阅读:
    上传文件至服务器(图片)
    centos7语言更改
    centos7无法访问虚拟机web服务
    Java中四种访问权限总结
    线程和进程、程序、应用程序之间的关系
    kafka
    图文并茂理解iptables
    扩展模块
    根据子网掩码计算最大主机数
    iptables匹配条件总结1
  • 原文地址:https://www.cnblogs.com/javammc/p/14938653.html
Copyright © 2011-2022 走看看