享元模式
主要用于减少创建对象的数量,以减少内存占用和提高性能。
享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。
用 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);
}
网友评论