2020-08-03

无废话设计模式(9)结构型模式

0-前言

  享元模式定义:运用共享技术有效地支持大量细粒度的对象。

1-实现

1-1、简单UML图:

 

 1-2、代码实现

 

//1、抽象父类(网站父类)abstract class Website{ public abstract void Use( String username);}//2、具体共享类(具体网站类)class ConcreteWebsite extends Website{ private String websiteclassname; public ConcreteWebsite(String name) {  this.websiteclassname = name; } @Override public void Use(String username) {  System.out.println("网站分类:"+ websiteclassname +"--用户:"+username); }}//3、享元工厂类(网站工厂)class WebsiteFactory{ private Hashtable<String , Website> websites =new Hashtable<>(); public Website getWebsite(String classname) {  if (!websites.containsKey(classname))  {   websites.put(classname, new ConcreteWebsite(classname));  }  return websites.get(classname); }}

 

 

 

客户端:

  WebsiteFactory wf = new WebsiteFactory();  Website fs = wf.getWebsite("企业官网");  fs.Use("张三");  Website fs1 = wf.getWebsite("博客");  fs1.Use("李四");  Website fs2 = wf.getWebsite("小程序");  fs2.Use("王五");

 

运行结果:

 

 

2-应用场景简单总结

1、一个程序使用了大量对象时;

2、由于使用了大量对象造成比较大的存储开销时;

3、对象的很多状态都可以改变为外部状态时;

无废话设计模式(9)结构型模式败欧洲tradeindia中转贸易案例分析:跨境运营中,中国制造如何升级为中国智造?如何检测对方数据?介绍三个Shopify超实用的工具软件!墩煌网2017清远最好玩的景点有哪些??2017元旦去广州哪里最好玩?2017广州有哪些最有特色的旅游景点

No comments:

Post a Comment