zoukankan      html  css  js  c++  java
  • 简单工厂模式

    java设计模式大体分为23种设计模式,直接通过例子学习设计模式,更易于理解和思考其中的原理和作用,以下给出 简单工厂模式 的demo:


    MainRun.java类,是程序运行入口,含有main方法。大伙认真的看main方法上面的注释喔,是博主对此模式的总结和分析。(附 advantage是表示使用此模式的优势,disadvantage是此模式的不足和缺点,use scene是表示此模式的使用场景。)

    package cn.cat.design.mode.factory.simple;
    
    public class MainRun {
    
    	/**简单工厂模式:客户需要获取产品,不是直接由用户创建,而是只需要向工厂获取即可。
    	 * advantage: 用户不用关心产品是如何生产的,并且便于对产品进行控制。
    	 * disadvantage:面对有些用户对产品的特殊需求,就不能通过工厂类统一供给。并且工厂类的修改,会牵扯到很多客户。
    	 * use scene:需要控制产品的生成,减少客户对产品的控制度,简化产品的获取方式。
    	 * @param args
    	 */
    	public static void main(String[] args) {
    		//从工厂中获取产品
    		Apple apple = AppleFactory.getInstance();
    		System.out.println("apple.flavour:"+apple.getFlavour());
    		System.out.println("apple.shape:"+apple.getShape());
    	}
    
    }
    



    AppleFactory.java

    package cn.cat.design.mode.factory.simple;
    
    /**工厂类,负责生产出产品
     *
     * @author Cat(gwj)
     * date 2015-8-2
     * time 下午2:14:59
     */
    public class AppleFactory {
    	public static  Apple getInstance() {
    		Apple apple = new Apple();
    		apple.setFlavour("sweet");
    		apple.setShape("ellipse");
    		System.out.println("工厂类AppleFactory生产出苹果产品:"+apple);
    		return apple;
    	}
    }
    


    Apple.java

    package cn.cat.design.mode.factory.simple;
    
    /**产品:苹果
     *
     * @author Cat(gwj)
     * date 2015-8-2
     * time 下午2:12:36
     */
    public class Apple {
    	/**
    	 * 味道
    	 */
    	private String flavour;
    	/**
    	 * 形状
    	 */
    	private String shape;
    	
    	public String getFlavour() {
    		return flavour;
    	}
    	public void setFlavour(String flavour) {
    		this.flavour = flavour;
    	}
    	public String getShape() {
    		return shape;
    	}
    	public void setShape(String shape) {
    		this.shape = shape;
    	}
    }
    



  • 相关阅读:
    [PKUWC2018][LOJ2537]Minimax(线段树合并)
    [NOI2019][洛谷P5471]弹跳(dijkstra+KD-Tree)
    [BZOJ4770]图样(概率期望、二进制数位dp)
    [SPOJ11482][BZOJ2787]Count on a trie(广义SA+长链剖分+BIT)
    [HEOI/TJOI2016][洛谷P4094]字符串(SA+主席树)
    [BZOJ3270]博物馆(矩阵求逆)
    [NOI2016][洛谷P1117]优秀的拆分(SA)
    [NOI2018][洛谷P4770]你的名字(SAM+SA+主席树)
    设置echarts两个y轴的0点一致
    echarts中饼图或环形图的高亮效果(点击高亮/默认某一条高亮)
  • 原文地址:https://www.cnblogs.com/catgwj/p/7541449.html
Copyright © 2011-2022 走看看