当前位置: 首页 > news >正文

wordpress远程上传媒体文件夹/seo查询优化

wordpress远程上传媒体文件夹,seo查询优化,太原网站建设斯飞网络,c 网站登录验证码怎么做享元模式是对象的结构模式。 享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State). 一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的。因此&…

享元模式是对象的结构模式。

享元模式以共享的方式高效地支持大量的细粒度对象。享元对象能做到共享的关键是区分内蕴状态(Internal State)和外蕴状态(External State).

一个内蕴状态是存储在享元对象内部的,并且是不会随环境改变而有所不同的。因此,一个享元可以具有内蕴状态并可以共享。

一个外蕴状态是可随环境改变而改变的,不可以共享的状态。享元对象的外蕴状态必须由客户端保存,并在享元对象被创建之后,在需要使用的时候再传入到享元对象内部。

外蕴状态不可以影响享元对象的内蕴状态。换句话说:它们是相互独立的。

单纯享元模式

   

复合享元模式

 

从上面的类图可以看出,在复合享元模式中,享元对象构成合成模式。因此,复合享元模式实际上是单纯享元模式与合成模式的组合。

在单纯享元模式中,所有的享元模式对象都是可以共享的

1、抽象享元角色:此角色是所有的具体享元类的超类,为这些类规定出需要实现的公共接口。那些需要外蕴状态(External State)的操作可以通过调用商业方法以参数形式传入。 
2、具体享元角色:实现抽象享元角色所规定的接口。如果有内蕴状态的话,必须负责为内蕴状态提供存储空间。享元对象的内蕴状态必须与对象所处的周围环境无关,从而使得享元对象可以在系统内共享。 
3、享元工厂角色:本角色负责创建和管理享元角色。本角色必须保证享元对象可以被系统适当地共享。当一个客户端对象调用一个享元对象的时候,享元工厂角色会检查系统中是否有一个复合要求的享元对象。如果已经有了,享元工厂角色就应当提供这个已有的享元对象;如果系统中没有一个适当的享元对象的话,享元工厂角色就应当创建一个合适的享元对象。 
4、客户端角色:本角色需要维护一个对所有享元对象的引用。本角色需要自行存储所有享元对象的外蕴状态。

示例代码:

内蕴状态由intrinsicState保存 ,所有的内蕴状态在对象被创建之后,就不可再改变了

外蕴状态通过operation进行设置,由客户端在需要的时候进行调用,并改变。

以下的代码中,虽然申请了3个享元对象,但实际上创建的享元对象只有2个,这就是共享的含 义。

image

package com.javapatterns.flyweight.simple;public class Client
{
private static FlyweightFactory factory;static public void main(String[] args)
{ 
factory = new FlyweightFactory();Flyweight fly = factory.factory(new Character('a'));
fly.operation("First Call");fly = factory.factory(new Character('b'));
fly.operation("Second Call");fly = factory.factory(new Character('a'));
fly.operation("Third Call");factory.checkFlyweight();
} 
}package com.javapatterns.flyweight.simple;import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;public class FlyweightFactory
{
private HashMap flies = new HashMap();private Flyweight lnkFlyweight;public FlyweightFactory(){}public synchronized Flyweight factory(Character state)
{ 
if ( flies.containsKey( state ) )
{
return (Flyweight) flies.get( state );
}
else
{
Flyweight fly = new ConcreteFlyweight( state );
flies.put( state , fly);
return fly;
}
}public void checkFlyweight()
{ 
Flyweight fly ;
int i = 0;System.out.println("\n==========checkFlyweight()=============");
for ( Iterator it = flies.entrySet().iterator() ; it.hasNext() ; )
{
Map.Entry e = (Map.Entry) it.next();
System.out.println("Item " + (++i) + " : " + e.getKey());
}
System.out.println("==========checkFlyweight()=============");
}}package com.javapatterns.flyweight.simple;public class ConcreteFlyweight extends Flyweight
{private Character intrinsicState = null;public ConcreteFlyweight(Character state)
{ 
this.intrinsicState = state;
}public void operation(String state)
{ 
System.out.print( "\nIntrinsic State = " + intrinsicState +
", Extrinsic State = " + state);
}
}package com.javapatterns.flyweight.simple;abstract public class Flyweight
{
abstract public void operation(String state);
}


复合享元模式:

image

从图上理解是比较容易的,但书中的代码着实让人晕的很,索性先跳过。

http://www.lbrq.cn/news/968347.html

相关文章:

  • wordpress中文目录/网络优化大师
  • 网站建设销售ppt模板/网站seo标题优化技巧
  • 中国软件是外包公司吗/百度搜索优化关键词排名
  • 黄山购物网站建设/友情链接交换的作用在于
  • 网站建设技术架构/房地产销售怎么找客户
  • 服务器网站配置/百度网盘搜索引擎入口官网
  • 徐州库云平台/网站seo排名优化工具在线
  • 厦门建设银行网站首页/枸橼酸西地那非片的功效与作用
  • 网上商城网站设计/农产品推广方案
  • web用框架做网站步骤/网络营销的渠道有哪些
  • 2017年免费建网站/网站关键词快速排名服务
  • 广告型网站建设/今日新闻快报
  • 无锡网站开发平台/游戏加盟
  • 自助模板网站建设做seo/今天新闻
  • 如何做网站链接分析/电商平台推广
  • 做网站撘框架/seo有哪些优化工具
  • 国外的做的比较优秀的网站有哪些/网址域名ip解析
  • 网站多种语言是怎么做的/手机百度账号登录入口
  • 免费发布出租房信息网站/seo排名工具外包
  • 腾讯网站建设费用/新闻稿营销
  • 北京网站建设升上去/天津seo诊断
  • 都匀市城乡建设局网站/2023年8月新冠又来了
  • 做网站毕设答辩问题/网站名称查询
  • 建设银行网站 查余额查询/新闻稿撰写
  • 现代化专业群建设专题网站护理专业/百度我的订单app
  • 坪地做网站/seo排名哪家有名
  • 广州口碑好的网站建设定制/崇左网站建设
  • 香港网站域名查询/站长工具 忘忧草
  • 零食天堂 专做零食推荐的网站/百度seo收录软件
  • 番禺哪里有做网站的公司/手机刷网站排名软件
  • NLP:LSTM和GRU分享
  • FATFS文件系统原理及其移植详解
  • flutter弹窗:fluttertoast
  • Linux系统下 挂载exfat文件系统U盘
  • MySQL高级篇(二):深入理解数据库事务与MySQL锁机制
  • JavaScript中Object.defineProperty的作用和用法以及和proxy的区别