您的位置:首页 > 其它

设计模式之---享元模式

2017-05-05 09:30 381 查看




下面来个实例,大家应该就明白了。

package flyweight;

public interface Flyweight {
void operate();
}
package flyweight;

public class FlyweightA implements Flyweight {

@Override
public void operate() {
// TODO Auto-generated method stub
System.out.println("操作---A");
}

}
package flyweight;

public class FlyweightB implements Flyweight {

@Override
public void operate() {
// TODO Auto-generated method stub
System.out.println("操作---B");
}

}
package flyweight;

public class UnsharedFlyweight implements Flyweight {

@Override
public void operate() {
// TODO Auto-generated method stub
System.out.println("非共享类操作");
}

}
package flyweight;

import java.util.HashMap;
import java.util.Map;

public class FlyweightFactory {
private Map<String, Flyweight> map=new HashMap<>();
public FlyweightFactory() {
map.put("A", new FlyweightA());
map.put("B", new FlyweightB());
}

public Flyweight getFlyweight(String key) {
return map.get(key);
}
}
package flyweight;

public class Client {

public static void main(String[] args) {
// TODO Auto-generated method stub
FlyweightFactory flyweightFactory=new FlyweightFactory();
Flyweight flyweightA = flyweightFactory.getFlyweight("A");
Flyweight flyweightB = flyweightFactory.getFlyweight("B");
Flyweight unsharedFlyweight=new UnsharedFlyweight();

flyweightA.operate();
flyweightB.operate();
unsharedFlyweight.operate();
}

}
在实际应用中,数据库连接池,线程池都有应用享元模式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息