php、java 实现享元模式
来源:互联网 发布:代理软件是fg 编辑:程序博客网 时间:2024/06/16 09:14
避免无限制的创建对象,建立一个对象池,将可以共享的对象存起来复用。
类图
java实现
public abstract class Flyweight { private String intrinsic; protected final String extrinsic; public Flyweight(String extrinsic){ this.extrinsic = extrinsic; } public abstract void operate(); public String getIntrinsic(){ return intrinsic; } public void setIntrinsic(String intrinsic){ this.intrinsic = intrinsic; }}
public class ConcreteFlyweight extends Flyweight { public ConcreteFlyweight(String extrinsic) { super(extrinsic); } @Override public void operate() { }}
public class FlyweightFaculty { private static HashMap<String,Flyweight> pool = new HashMap<>(); public static Flyweight getFlyweight(String extrinsic){ Flyweight flyweight = null; if(pool.containsKey(extrinsic)){ flyweight = pool.get(extrinsic); }else{ flyweight = new ConcreteFlyweight(extrinsic); pool.put(extrinsic,flyweight); } return flyweight; }}
php实现
<?phpabstract class Flyweight{ private $intrinsic; protected $extrinsic; public function __construct($extrinsic) { $this->extrinsic = $extrinsic; } public abstract function operate(); public function getIntrinsic() { return $this->intrinsic; } public function setIntrinsic($intrinsic) { $this->intrinsic = $intrinsic; }}class ConcreteFlyweight extends Flyweight{ public function __construct($extrinsic) { parent::__construct($extrinsic); } public function operate() { }}class FlyweghtFaculty{ public static $pool = array(); public function getFlyweight($key) { if(array_key_exists($key,FlyweghtFaculty::$pool)) { $flyWeight = FlyweghtFaculty::$pool[$key]; echo 'cache'; } else { $flyWeight = new ConcreteFlyweight($key); FlyweghtFaculty::$pool[$key] = $flyWeight; echo 'create'; } return $flyWeight; }}$faculty = new FlyweghtFaculty();$faculty->getFlyweight('111');$faculty->getFlyweight('111');
0 0
- php、java 实现享元模式
- 享元模式(java实现)
- 用PHP实现享元FlyWeight模式
- 享元模式及php实现
- php享元模式
- Java 实现享元(Flyweight)模式
- 《大话设计模式》java实现之享元模式
- java享元模式
- java享元模式
- java享元模式
- java享元模式
- java享元模式
- Java 享元模式
- 享元模式 Java
- Java 享元模式
- java享元模式
- java-享元模式
- java中实际运用之-Flyweight享元模式(实现单纯享元模式结构)
- Acesss数据库手工绕过通用代码防注入系统
- 算法——求某个数的质因数
- hdu 1166 敌兵布阵(线段树)
- html的<a href="" />标签点击出现蓝色边框解决方法
- spring mvc RedirectAttributes 重定向 + redis缓存
- php、java 实现享元模式
- maven使用deploy发布到本地仓库
- 深入理解php $this 变量是一个到主叫对象的引用
- python切片
- 安装RAC执行root.sh时报错:error while loading shared libraries: libcap.so.1: cannot open shared object file:
- Storm linux单机版安装
- 配准小问题
- plsql无“连接到”,plsql的database下拉空白,plsql报 Could not load ... oci.dll 找不到,plsql 报 系统缺失MSVCR71.dll
- python笔记