设计模式之享元模式

一、享元模式
1.享元模式定义:为了避免大量拥有相同内容的小类重复创建,而使大家共享一个类的模式。Flyweight享元设计模式实质是运用一个简单工厂方法模式,外加一个单类模式实现细粒度原件的共享。

2.享元模式的UML
这里写图片描述

3.享元模式示例

class Book{  
    private String title;  
    private float price;  
    private Author author;

    public String getTitle(){  
        return title;  
    }  

    public float getPrice(){  
        return price;  
    }  

    public Author getAuthor(){  
        return author;    
    }  
} 

//将Author作者类设计为可共享的享元  
class Author{  
    //内部状态  
    private String name;  

    public String getName(){  
        return name;  
    }  

    public Author(String name){  
        this.name = name;  
    }  
} 

//享元工厂  
public class AuthorFactory{  
    private static Map<String, Author> authors = new HashMap<String, Author>();  

    public static Author getAuthor(String name){  
        Author author = authors.get(name);  
        if(author == null){  
            author = new Author(name);  
            authors.put(name, author);  
        }  
        return author;  
    }  
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值