//享元模式
public class Flyweight {
public static void main(String[] args) {
//创建享元工厂Crater flyweight factory
WebSiteFactory factory = new WebSiteFactory();
WebSite webSite = factory.getWebSiteCategory("博客");
webSite.use(new User("吕布"));
}
}
//享元工厂类
class WebSiteFactory{
//充当池
private HashMap<String,ConcreteWebSite> pool = new HashMap<>();
public WebSite getWebSiteCategory(String type){
if (!pool.containsValue(type)) {
pool.put(type,new ConcreteWebSite(type));
}
return pool.get(type);
}
//获取网站分类的总数(池中网站的数量)
public int getWebSiteCount(){
return pool.size();
}
}
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;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}
interface WebSite{
void use(User user);
}
class ConcreteWebSite implements WebSite {
private String type = "";
public ConcreteWebSite(String type) {
this.type = type;
}
@Override
public void use(User user) {
System.out.println("网站发布形式为:" +type+" 使用者:" +user.getName());
}
}
java享原模式代码示例
最新推荐文章于 2024-10-27 15:49:02 发布