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();
        }
    
    }
  • 相关阅读:
    转_前端开发技术概要
    获取链接的参数
    tabIndex 主要是美化tab键切换的体现
    textarea自动增高并隐藏滚动条
    Zen Coding:css,html缩写替换大观让你的html,css飞起来
    动态添加链接颜色代码
    转javascript 数组
    为指定元素增加样式
    1 CodeBox代码盒子 alpha版发布
    转发布js支持Firefox的加入收藏代码
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3916821.html
Copyright © 2011-2022 走看看