享元模式
主要用于減少創(chuàng)建對象的數(shù)量闯割,以減少內(nèi)存占用和提高性能骤铃。
享元模式嘗試重用現(xiàn)有的同類對象,如果未找到匹配的對象,則創(chuàng)建新對象牛郑。
用 HashMap 存儲這些對象芜飘。
/**
* Created by malei on 2016/12/6.
*/
public class AnimalFactory {
private static final HashMap<String, Animal> list
= new HashMap();
public static Animal get(String name){
Animal item = (Animal)list.get(name);
if(item == null){
Log.show("向List添加新對象");
if(name.equals("貓")){
item =new Cat();
list.put("貓",item);
}else if(name.equals("狗")){
item =new Dog();
list.put("狗",item);
}
}
return item;
}
public static void main(String[] args){
for (int i= 0 ; i <10 ;i++){
Animal item = AnimalFactory.get("貓");
item.run(2);
}
}
}
/**
* Created by malei on 2016/12/6.
*/
public class Cat implements Animal{
@Override
public void run(int age) {
Log.show("小貓"+age);
}
}
/**
* Created by malei on 2016/12/6.
*/
public class Dog implements Animal{
@Override
public void run(int age) {
Log.show("小狗"+age);
}
}
/**
* Created by malei on 2016/12/6.
*/
public interface Animal {
void run(int age);
}