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

医疗器械网站建设方案南京金融网站建设

医疗器械网站建设方案,南京金融网站建设,网站建设的优点和缺点,WordPress太占空间了10-Python与设计模式–享元模式 一、网上咖啡选购平台 假设有一个网上咖啡选购平台#xff0c;客户可以在该平台上下订单订购咖啡#xff0c;平台会根据用户位置进行 线下配送。假设其咖啡对象构造如下#xff1a; class Coffee:name price 0def __init__(self,name):se…10-Python与设计模式–享元模式 一、网上咖啡选购平台 假设有一个网上咖啡选购平台客户可以在该平台上下订单订购咖啡平台会根据用户位置进行 线下配送。假设其咖啡对象构造如下 class Coffee:name price 0def __init__(self,name):self.name nameself.price len(name) # 在实际业务中咖啡价格应该是由配置表进行配置或者调用接口获取等方式得到# 此处为说明享元模式将咖啡价格定为名称长度只是一种简化def show(self):print Coffee Name:%s Price:%s%(self.name,self.price)其对应的顾客类如下 class Customer:namedef __init__(self,name):self.namenamedef order(self,coffee_name):print %s ordered a cup of coffee:%s%(self.name,coffee_name)return Coffee(coffee_name)按照一般的处理流程用户在网上预订咖啡其代表用户的Customer类中生成一个Coffee类 直到交易流程结束。整个流程是没有问题的。如果随着网站用户越来越多单位时间内购买咖啡的用户 也越来越多并发量越来越大对系统资源的消耗也会越来越大极端情况下会造成宕机等严重后果。 此时高效利用资源就显得非常重要了。简单分析下业务流程高并发下用户数量增加而该模型下每个用户点一杯咖啡就会产生一个咖啡实例 如果一种咖啡在该时间内被很多用户点过那么就会产生很多同样咖啡的实例。避免重复实例的出现 是节约系统资源的一个突破口。类似于单例模式我们这里在咖啡实例化前增加一个控制实例化的类 咖啡工厂。class CoffeeFactory():coffee_dict {}def getCoffee(self, name):if self.coffee_dict.has_key(name) False:self.coffee_dict[name] Coffee(name)return self.coffee_dict[name]def getCoffeeCount(self):return len(self.coffee_dict)咖啡工厂中getCoffeeCount直接返回当前实例个数。Customer类可以重写下如下 class Customer:coffee_factorynamedef __init__(self,name,coffee_factory):self.namenameself.coffee_factorycoffee_factorydef order(self,coffee_name):print %s ordered a cup of coffee:%s%(self.name,coffee_name)return self.coffee_factory.getCoffee(coffee_name)假设业务中短时间内有多人订了咖啡业务模拟如下 if __name____main__:coffee_factoryCoffeeFactory()customer_1Customer(A Client,coffee_factory)customer_2Customer(B Client,coffee_factory)customer_3Customer(C Client,coffee_factory)c1_cappcustomer_1.order(cappuccino)c1_capp.show()c2_mochacustomer_2.order(mocha)c2_mocha.show()c3_cappcustomer_3.order(cappuccino)c3_capp.show()print Num of Coffee Instance:%s%coffee_factory.getCoffeeCount()打印如下 A Client ordered a cup of coffee:cappuccino Coffee Name:cappuccino Price:10 B Client ordered a cup of coffee:mocha Coffee Name:mocha Price:5 C Client ordered a cup of coffee:cappuccino Coffee Name:cappuccino Price:10 Num of Coffee Instance:2 根据结果可以得知该模式下三个用户点了两种咖啡最终的咖啡实例为2而不是3。 二、享元模式 享元模式定义如下使用共享对象支持大量细粒度对象。大量细粒度的对象的支持共享可能会涉及这些对象的 两类信息内部状态信息和外部状态信息。内部状态信息就是可共享出来的信息它们存储在享元对象内部 不会随着特定环境的改变而改变外部状态信息就不可共享的信息了。享元模式中只包含内部状态信息 而不应该包含外部状态信息。这点在设计业务架构时应该有所考虑。三、享元模式的优点和使用场景 优点 1、减少重复对象大大节约了系统资源。使用场景 1、系统中存在大量的相似对象时可以选择享元模式提高资源利用率。咖啡订购平台比较小若假设一个电商平台每个买家和卖家建立起买卖关系后买家对象和卖家对象都是占用资源的。如果一个卖家同时与多个买家建立起买卖关系呢此时享元模式的优势就体现出来了 2、需要缓冲池的场景中可以使用享元模式。如进程池线程池等技术就可以使用享元模式事实上很多的池技术中已经使得了享元模式。四、享元模式的缺点 1、享元模式虽然节约了系统资源但同时也提高了系统的复杂性尤其当遇到外部状态和内部状态混在一起时需要先将其进行分离才可以使用享元模式。否则会引起逻辑混乱或业务风险 2、享元模式中需要额外注意线程安全问题。
http://www.dnsts.com.cn/news/238007.html

相关文章:

  • 大型网站维护费用企业logo设计在线生成
  • 岳西县住房和城乡建设局网站网站界面设计中的布局设计要注意什么的结合
  • 内网网站建设方面政策为什么做的网站搜不出来
  • 注册网站免费注册邮箱中国工商注册网查询登记
  • 硬件开发一站式平台德州网站建设维护
  • 承德公司网站建设案列网站
  • 网站浮动窗口代码西安烽盈网站建设推广
  • 深圳成交型网站建设公司盘锦网络推广
  • 淘宝网站建设违规吗什么网站做生鲜比较好
  • 网站如何做查询表单做网站 (公司)
  • 中国社交网站做多外国人的拖拉建网站
  • 资阳公司网站建设网站官网认证加v怎么做
  • 帝国cms 做的博客网站软件开发工具也叫
  • 公司建立网站青岛电话帮开设赌场的网站做美工
  • 四川省住建设厅网站什么值得买网站模版
  • 网站在线解压动漫网站源码下载
  • 外国网站建设网站建设的发展目标
  • wordpress整站数据公司百度网站建设
  • 做网站的关键性技术有哪些国内优秀网站网页设计
  • 免费站长工具网站及app开发招聘
  • 手机网站开发 1433端口错误山西省财政厅网站三基建设专栏
  • 广州房地产网站建设数据型网站
  • 有没有招代理商的网站网页版梦幻西游哪个职业厉害
  • wordpress带会员的主题杭州seo中心
  • 网站维护运行建设报告视频编辑sdk
  • 网站模板案例海口企业自助建站
  • 成都设计网站的公司网站建设哪个公司
  • 凡科网站是骗子wordpress迁移后地址没变
  • 卖挂的网站怎么做app和网站趋势
  • 长春网站建设 找源晟设计工作室起名