zoukankan      html  css  js  c++  java
  • 设计模式抽象工厂

    抽象工厂模式



    设计原则:遵循单一职责、依赖倒置、开闭原则
    常用场景:需要一个接口可以提供一个产品族,且不必知道产品的具体种类
    使用概率:30%
    复杂度:中
    变化点:工厂与产品的种类
    选择关键点:产品族是否需要一起提供,且是否有一致的接口
    逆鳞:无
    相关设计模式
    建造者模式:两者都是建造一批对象或者说产品,不同的是两者的目的和实现手段,
    在建造者模式中,是为了复用对象的构建过程而定义了一个指挥者,而在抽象工厂模式中,是为了提供一个这批对象的创建接口而定义了抽象工厂接口。



    主要思想:
    实际是把多工厂模式中分别提供不同类实例化的方法进行拆分,不放在一个工厂类中,而是拆分为多个工厂类,即把工厂类进一步抽象
    一个工厂类提供一个单独类实例化方法,
    同时工厂类和实例类分别实现接口
    增加了工厂方法的扩展性


    public interface DoInterface {
        public void dosomething();
    }
    public interface FactoryInterface {
        public DoInterface produce();
    }
    public class DoInterfaceImplementsA implements DoInterface {
        @Override
        public void dosomething() {
            System.out.println("A");
        }
    }
    public class DoInterfaceImplementsB implements DoInterface {
        @Override
        public void dosomething() {
            System.out.println("B");
        }
    }
    public class FactoryA implements FactoryInterface {
        @Override
        public DoInterface produce() {
            return new DoInterfaceImplementsA();
        }
    }
    public class FactoryB implements FactoryInterface {
        @Override
        public DoInterface produce() {
            return new DoInterfaceImplementsB();
        }
    }


  • 相关阅读:
    Linux基础知识
    oracle用户及表空间基础
    渗透测试之目录扫描-Dirbuster
    oracle自定义函数身份证15位和18位的转换
    linux 网络带宽和延时测试
    LNMP(linux+nginx+mysql+php)服务器环境配置
    使用Medusa美杜莎暴力破解SSH密码
    暴力密码在线破解工具
    在linux下搭建NFS服务器实现文件共享
    Nginx是做什么的
  • 原文地址:https://www.cnblogs.com/zhaojj/p/7766724.html
Copyright © 2011-2022 走看看