打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Matlab享元模式

享元模式(Flyweight)通过共享技术实现相同或相似对象的重用,可以减少创建对象的数量,以减少内存占用和提高性能。Java String的常量池,python logging,线程池,数据库连接池都用到了享元模式。享元模式与单例模式类似,都具有共享变量的特征。本文通过使用matlab语言对享元模式进行实现。

 IFlyweight.m

classdef IFlyweight < handle    methods(Abstract)        print(~);    endend

Flyweight.m

classdef Flyweight < IFlyweight    properties        color    end       methods        function obj = Flyweight(color)            obj.color =  color;        end        function print(obj)            disp("color:"+obj.color)        end    endend

FlyweightFactory.m

classdef FlyweightFactory < handle        methods(Static)        function res = getFlyweightMap()            persistent flyweightMap;            if isempty(flyweightMap) || ~isvalid(flyweightMap)                flyweightMap = containers.Map();            end            res = flyweightMap;        end        function obj = getFlyweight(color)            flyweightMap = FlyweightFactory.getFlyweightMap();            if(~flyweightMap.isKey(color))                flyweightMap(color) = Flyweight(color);            end            obj = flyweightMap(color);        end        function size = getFlyweightMapSize()            flyweightMap = FlyweightFactory.getFlyweightMap();            size = flyweightMap.length();        end    endend

测试代码

fw1 = FlyweightFactory.getFlyweight('Red');fw2 = FlyweightFactory.getFlyweight('Blue');fw3 = FlyweightFactory.getFlyweight('Red');fw1.print();fw2.print();fw3.print();disp(FlyweightFactory.getFlyweightMapSize());clear('FlyweightFactory');
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#设计模式系列:享元模式(Flyweight)
设计模式-结构型-享元模式
结构型模式之享元模式
设计模式之享元模式(C++)
设计模式
设计模式之Flyweight(享元) FlyWeight模式
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服