zoukankan      html  css  js  c++  java
  • 设计模式学习笔记八:享元模式

    享元模式,又叫蝇量模式:适用于是小类的复用,多与工厂模式配合使用。没看设计模式的人,在coding的时候应该会不知不觉中写过这种结构的代码,只不过不知道名字叫什么而已。

    享受模式详细定义:传送门


    上代码:

    package com.liushijie.flyweight;
    
    import java.util.HashMap;
    
    public class Run {
    	public static void main(String[] args) {
    		// 调用
    		FruitFactory factory = new FruitFactory();
    		factory.doEat("apple");
    		factory.doEat("banana");
    		factory.doEat("orange");
    	}
    }
    
    class FruitFactory {
    	private HashMap<String, Fruit> fruits = new HashMap<String, Fruit>();
    
    	public FruitFactory() {
    		// 初始化蝇量元素
    		fruits.put("apple", new Apple());
    		fruits.put("banana", new Banana());
    		fruits.put("orange", new Orange());
    	}
    
    	/**
    	 * 吃掉
    	 * 
    	 * @param type
    	 */
    	public void doEat(String type) {
    		Fruit fruit = fruits.get(type);
    		fruit.eat();
    	}
    }
    
    /**
     * 水果接口
     * 
     * @author array7
     * 
     */
    interface Fruit {
    	/**
    	 * 吃接口
    	 */
    	public void eat();
    }
    
    /**
     * 苹果
     * 
     * @author array7
     * 
     */
    class Apple implements Fruit {
    
    	@Override
    	public void eat() {
    		System.out.println("eat a apple...");
    	}
    
    }
    
    /**
     * 橘子
     * 
     * @author array7
     * 
     */
    class Orange implements Fruit {
    
    	@Override
    	public void eat() {
    		System.out.println("eat a orange...");
    	}
    
    }
    
    /**
     * 香蕉
     * 
     * @author array7
     * 
     */
    class Banana implements Fruit {
    
    	@Override
    	public void eat() {
    		System.out.println("eat a banana...");
    	}
    
    }
  • 相关阅读:
    Android View相关知识问答
    AMS工作原理:activity启动
    Android系统启动概要
    源码分析: 图片加载框架Picasso源码分析
    Android组件化、模块化、插件化
    Android技术文章收集
    一个功能强大的日志工具类
    Android Hook技术
    虚函数与纯虚函数
    二叉树的深度并判断是否是平衡二叉树
  • 原文地址:https://www.cnblogs.com/liushijie/p/4712908.html
Copyright © 2011-2022 走看看