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

来源:互联网 发布:apache.org 编辑:程序博客网 时间:2024/06/10 00:50

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

package flyweight;public interface Flyweight {void operate();}
package flyweight;public class FlyweightA implements Flyweight {@Overridepublic void operate() {// TODO Auto-generated method stubSystem.out.println("操作---A");}}
package flyweight;public class FlyweightB implements Flyweight {@Overridepublic void operate() {// TODO Auto-generated method stubSystem.out.println("操作---B");}}
package flyweight;public class UnsharedFlyweight implements Flyweight {@Overridepublic void operate() {// TODO Auto-generated method stubSystem.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 stubFlyweightFactory flyweightFactory=new FlyweightFactory();Flyweight flyweightA = flyweightFactory.getFlyweight("A");Flyweight flyweightB = flyweightFactory.getFlyweight("B");Flyweight unsharedFlyweight=new UnsharedFlyweight();flyweightA.operate();flyweightB.operate();unsharedFlyweight.operate();}}
在实际应用中,数据库连接池,线程池都有应用享元模式。

1 0