• 工厂模式


    一、简单工厂模式

    在我看来该模式的本质就是通过工厂的选择进行对象的创建

    先写一个接口

    public interface operation {
        int getResult(int a,int b);
    }

    写两个实现类

    public class operationAdd implements operation{
        public int getResult(int a, int b) {
            return a+b;
        }
    }
    public class operationSub implements operation{
        public int getResult(int a, int b) {
            return a-b;
        }
    }

    写工厂

    public class operationFactory {
        public static operation getOperation(String op)
        {
            if(op.equals("+"))
            {
                return new operationAdd();
            }
            else if(op.equals("-"))
            {
                return new operationSub();
            }
            return null;
        }
    }

    最后测试

    public static void main(String[] args) {
            System.out.println(operationFactory.getOperation("+").getResult(2, 3));
            System.out.println(operationFactory.getOperation("-").getResult(2, 3));
        }

    二、工厂方法模式

    将工厂类抽象,让他的每一个实现对应一个具体创建的操作

    public interface operationFactory {
        public operation getOperation();
    }
    public class addFactory implements operationFactory{
        public operation getOperation() {
            return new operationSub();
        }
    }
    public class subFactory implements operationFactory{
        public operation getOperation() {
            return new operationAdd();
        }
    }

    测试

    public static void main(String[] args) {
            operationFactory of=new addFactory();
            System.out.println(of.getOperation().getResult(2, 5));
        }

    三、抽象工厂

    抽象工厂就是把一类相关性高的抽象为一个接口,

    比如上面的加法减法可以抽象成一个基本运算工厂。只是在上面两个的情况下进行了更详细的划分。

    最后,工厂模式和反射可以很好的结合在一起。

  • 相关阅读:
    常用图书下载
    模式另类说明
    windows进程中的内存结构
    Windows API学习手记
    20060318工作记录
    X3全局变量及公共函数所在的命名空间说明
    PHP 后台定时循环刷新某个页面 屏蔽apache意外停止
    php随机生成指定长度的字符串 可以固定数字 字母 混合
    以div代替frameset,用css实现仿框架布局
    核中汇编写的字符串函数代码分析
  • 原文地址:https://www.cnblogs.com/blogofjzq/p/9453947.html
Copyright © 2020-2023  润新知