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

    一.

      在工厂方法模式种,不再由单一的工厂类生产产品,而是由工厂类的子类实现具体产品的创建。当增加一个产品时,只需要增加一个相应的工厂类的子类,实现生产这种产品,便可以解决简单工厂生产太多产品导致其内部代码臃肿的问题。

    二.通用写法

    抽象产品:

    public interface IProduct {
        public void doService();
    }
    

     实现抽象产品:

    public class ProductA implements IProduct {
        @Override
        public void doService() {
            System.out.println("ProductA");
        }
    }
    public class ProductB implements IProduct {
        @Override
        public void doService() {
            System.out.println("ProductB");
        }
    }
    

    抽象工厂:

    public interface IFactory {
        public IProduct produce();
    }
    

    实现抽象工厂:

    public class FactoryA implements IFactory {
        @Override
        public IProduct produce() {
            return new ProductA();
        }
    }
    
    public class FactoryB implements IFactory {
        @Override
        public IProduct produce() {
            return new ProductB();
        }
    }
    

     测试:

    public class Test {
        public static void main(String[] args) {
            IFactory factory = new FactoryA();
            IProduct product = factory.produce();
            product.doService();
        }
    }
    

     

    3.uml类图

     该模式的缺点:

    1.类的个数过多,增加复杂度

    2.抽象产品只能生产一种产品,可以用抽象工厂模式解决

    3.增加系统的抽象性和理解难度。

  • 相关阅读:
    前后端分离实践 — 如何解决跨域问题
    bower 和 npm 的区别详细介绍
    yeoman-bower-grunt之间的关系
    软件开发环境-开发环境、测试环境、生产环境的区别
    Tomcat下配置JNDI的三种方式
    SSE
    Java动态代理
    Css之Relative
    多线程之——死锁
    JVM
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/13581099.html
Copyright © 2011-2022 走看看