TreeviewCopyright © qgao 2021-* all right reserved, powered by aleen42

享元模式

Client.java

package com.bermuda.surface;

import com.bermuda.background.User;
import com.bermuda.background.Website;
import com.bermuda.background.WebsiteFactory;

public class Client {

    public static void main(String[] args) {
        WebsiteFactory websiteFactory = new WebsiteFactory();

        Website fx = websiteFactory.getWebsiteCatagory("product show");
        fx.use(new User("gao"));
    }
}

Website.java

package com.bermuda.background;

public abstract class Website {

    public abstract void use(User user);
}

ConcreteWebSite.java

package com.bermuda.background;

public class ConcreteWebSite extends Website {

    private String name;

    public ConcreteWebSite(String name) {
        this.name = name;
    }

    public void use(User user) {
        System.out.println("网站分类:"+name+" 用户:"+user.getName());
    }
}

WebsiteFactory.java

package com.bermuda.background;

import java.util.Hashtable;

public class WebsiteFactory {

    private Hashtable<String,Website> flyweights = new Hashtable<String, Website>();

    public Website getWebsiteCatagory(String key){
        if(!flyweights.containsKey(key)){
            flyweights.put(key,new ConcreteWebSite(key));
        }
        return flyweights.get(key);
    }

    public int getWebSiteCount(){
        return flyweights.size();
    }
}

User.java

package com.bermuda.background;

public class User {
    private String name;

    public User(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}
Copyright © qgao 2021-* all right reserved,powered by Gitbook该文件修订时间: 2022-07-08 21:13:28

results matching ""

    No results matching ""