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

xiaoxiao2021-02-27  142

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

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(); } } 在实际应用中,数据库连接池,线程池都有应用享元模式。

转载请注明原文地址: https://www.6miu.com/read-15122.html

最新回复(0)