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

    工厂角色:

    package designpattern.creation.factorymethod;
    
    public class FactoryA {
    
        public IProduct getProduct() {
            return new ProductA();
        }
        
    }
    
    
    package designpattern.creation.factorymethod;
    
    public class FactoryB {
    
        public IProduct getProduct() {
            return new ProductB();
        }
        
    }

    产品角色:

    package designpattern.creation.factorymethod;
    
    public interface IProduct {
    
        void use();
    }
    
    package designpattern.creation.factorymethod;
    
    public class ProductA implements IProduct {
    
        public void use() {
            // TODO Auto-generated method stub
            System.out.println("ProductA.use()");
        }
    }
    
    package designpattern.creation.factorymethod;
    
    public class ProductB implements IProduct {
    
        public void use() {
            // TODO Auto-generated method stub
            System.out.println("ProductB.use()");
        }
    
    }

    客户端:

    package designpattern.creation.factorymethod;
    /*
     * 
     * 工厂方法用于处理更加复杂的情况。
     * —— 当产品出现不用种类的时候。
     * 为什么 称这种模式为工厂方法? ?
     * 
     * 要素:
     * 
     * 1 只有多个工厂
     * 2 工厂有一个方法 ,每个工厂只负责生产一个产品
     * 3 客户端通过调用不同工厂的相同方法获取对应的不同的产品
     * 
     * 缺点:
     * 每增加一个产品则需要增加2个类: 一个工厂、一个具体产品—— 这样导致类的膨胀
     * 
     * 
     * 使用场景?
     * 
     */
    public class Client {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            IProduct product = new FactoryA().getProduct();
            product.use();
    
            IProduct product2 = new FactoryB().getProduct();
            product2.use();
        }
    
    }
  • 相关阅读:
    Atos cannot get symbols from dSYM of archived application
    iOS 中捕获程序崩溃日志 (2014-04-22 17:35:59)
    mysql创建索引
    maven整理项目spring配置文件加载问题
    js继承
    创建对象的方式
    js闭包
    js两种创建对象方式
    shiro-web整合
    shiro连接数据库
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3916821.html
Copyright © 2011-2022 走看看