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

重庆网站建设模板服务/佛山快速排名

重庆网站建设模板服务,佛山快速排名,人力资源招聘公司,h5网站建设 北京【返回目录】 朋友们肯定都看过《西游记》,里面最帅的角色非孙悟空莫属,而孙悟空最厉害的技术实力就是72变,其实“72”只是个概述,实际上他可以想变什么就变什么。而这些变化里面,最为壮观的莫过于变小猴子&#xff0c…

【返回目录】

朋友们肯定都看过《西游记》,里面最帅的角色非孙悟空莫属,而孙悟空最厉害的技术实力就是72变,其实“72”只是个概述,实际上他可以想变什么就变什么。而这些变化里面,最为壮观的莫过于变小猴子,无论是央视83版《西游记》中的变小猴子大战天兵天将,还是《大话西游》中变小猴子大战牛虱,场面都蔚为壮观,而且《大话西游》表现的更为戏剧性,孙悟空还可以在一旁懒洋洋地观战。

我们不推荐每位读者都去学习如何拔汗毛吹气变小人儿,我们假设孙悟空变出小猴子的场景是发生在电脑当中,例如孙悟空拔10根汗毛吹口气变成10个小猴子站成一排威慑敌人,如何用程序设计的思维方式来实现这个过程呢?

一个很直接的办法是:实例化N个小猴子的实例对象,N也是汗毛根数,然后把这些实例对象塞进一个数组对象中去就可以了。这个方法实现起来的确是最直观简洁的,但是如果我们要考虑到性能问题呢?假设这个时候10个小猴子已经起不到威慑作用了,玉皇大帝派来50万天兵天将,那么孙悟空至少要弄出一只70万只猴子的野战部队来才有可能把对方镇住,难道要实例化70万个猴子的实力然后塞到一个常常的数组里去吗?我估计很少有计算机用户愿意花那么多准备时间来占用那么多内存容量的。

像这种情况我们就可以考虑使用享元模式了。享元,顾名思义就是“共享元素”的意思。我们假设在花果山只有两种猴子(像眼睛猴这种不擅长打架的外援暂不考虑引进):猕猴(Macaque)和金丝猴(Golden Monkey),那么我们就可以有两个类,MacaqueFlyweight和GoldenMonkeyFlyweight,那么我们只需要有2个猴子的对象实例就行了,它们的内部信息和外部信息完全分离开,比如它们有共同的站立方法,但是站立的位子则是作为外部信息传递给它们。我们把这两个猴子的对象放进一个共享数组中,每次取出一个猴子的实例然后告诉它站立的位置,就能够添加一个猴子了。这些猴子没有太多的内部信息,我们不需要记住它们每只猴子各自的长相、喜好、姓名和年龄等,我们对它们都是一视同仁,这样的场景就很符合享元模式的设计思路。

让我们来看看示例代码吧:

   1: using System;
   2: using System.Collections;
   3:  
   4: namespace Autumoon.DesignPatterns.FlyweightDemo
   5: {
   6:     public class FlyweightFactory
   7:     {
   8:         private ArrayList _monkeyTroop = null;
   9:  
  10:         public FlyweightFactory()
  11:         {
  12:             this._monkeyTroop = new ArrayList();
  13:             this._monkeyTroop.Add(new GoldenMondkyFlyweight());
  14:             this._monkeyTroop.Add(new MacaqueFlyweight());
  15:         }
  16:  
  17:         public Flyweight GetFlyweight(int key)
  18:         {
  19:             return ((Flyweight)this._monkeyTroop[key % 2]);
  20:         }
  21:     }
  22:  
  23:     public abstract class Flyweight
  24:     {
  25:         abstract public void Stand(int pointX, int pointY);
  26:     }
  27:  
  28:     public class GoldenMondkyFlyweight : Flyweight
  29:     {
  30:         override public void Stand(int pointX, int pointY)
  31:         {
  32:             Console.WriteLine("This golden monkey stands at [{0},{1}].", pointX, pointY);
  33:         }
  34:     }
  35:  
  36:     public class MacaqueFlyweight : Flyweight
  37:     {
  38:         override public void Stand(int pointX, int pointY)
  39:         {
  40:             Console.WriteLine("This macaque stands at [{0},{1}].", pointX, pointY);
  41:         }
  42:     }
  43: }

遇到有小妖怪来踢馆,孙悟空随便拔10根汗毛变出10只小猴子站成一排,敌人也未必敢轻举妄动。

   1: static void Main(string[] args)
   2: {
   3:     #region Flyweight
   4:     FlyweightFactory flyweightFacotry = new FlyweightFactory();
   5:  
   6:     for (int i = 1; i <= 10; i++)
   7:     {
   8:         Flyweight flyweight = flyweightFacotry.GetFlyweight(i);
   9:         flyweight.Stand(1, i);
  10:     }
  11:     #endregion
  12:  
  13:     Console.ReadLine();
  14: }

The Monkey King

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

相关文章:

  • wordpress/woocommerce/seo广告投放
  • 青岛网站建设有哪些公司/外链管理
  • 网站建设与维护 电子版/电脑培训班多少费用
  • 公司网站建设需要提供什么材料/每天看七个广告赚40元的app
  • 自己做的网站怎么设置地址/全国十大婚恋网站排名
  • 做网站推广对电脑有什么要求/超级推荐的关键词怎么优化
  • 古交网站建设/新品上市怎么推广词
  • 白银市网站建设/如何做品牌推广方案
  • 自做视频网站赚钱吗/完美日记网络营销策划书
  • 东莞做网站要多少钱/朋友圈推广
  • 做婚恋交友网站模板/线上推广有哪些渠道
  • 网站建设售后服务合同/国内最新的新闻
  • 56m做图片视频的网站是什么/热点新闻事件素材
  • 东莞长安/武汉网站seo
  • 网站建设新报价图片欣赏/品牌定位
  • 网站全屏轮播怎么做/网络营销策划书论文
  • 网站兼容怎么调/千网推软文推广平台
  • 企业腾讯邮箱/什么是seo如何进行seo
  • 16岁做分期网站/网络营销课程有哪些
  • 淘宝导购网站备案/注册域名费用一般多少钱
  • 只做女性的网站/长沙seo外包优化
  • 海口网站制作企业/拉新推广渠道
  • 电脑系统做的好的几个网站/天津债务优化公司
  • 企业网站建设如何去规划/seo 页面
  • 上海莱布拉网站建设/百度游戏app下载
  • 网站显示速度的代码/seo网站平台
  • 做的好的网站开发/北京建公司网站价格
  • 哈尔滨线下教学最新情况/通州优化公司
  • 深圳做门户网站/网络营销推广
  • 专业旅游网站开发系统/电商推广和网络推广的区别
  • Springboot 配置 doris 连接
  • java8学习笔记-Stream流
  • 前端渲染三国杀:SSR、SPA、SSG
  • AWS云安全审计终极实战指南:构建自动化安全防线
  • .NET 10 中的新增功能系列文章3—— .NET MAUI 中的新增功能
  • 2023 年 NOI 最后一题题解