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

智慧团建网站登录密码wordpress一键搭建

智慧团建网站登录密码,wordpress一键搭建,宁波小程序开发,店面设计用什么软件动机(Motivate): 在软件构建过程中#xff0c;集合对象内部结构常常变化各异。但对于这些集合对象#xff0c;我们希望在不暴露其内部结构的同时#xff0c;可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作…动机(Motivate):     在软件构建过程中集合对象内部结构常常变化各异。但对于这些集合对象我们希望在不暴露其内部结构的同时可以让外部客户代码透明地访问其中包含的元素;同时这种“透明遍历”也为“ 同一种算法在多种集合对象上进行操作”提供了可能。     使用面向对象技术将这种遍历机制抽象为“迭代器对象”为“应对变化中的集合对象”提供了一种优雅的方法。意图(Intent):     提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。-------《设计模式》GOF结构图Struct):               适用性    1访问一个聚合对象的内容而无需暴露它的内部表示。 2支持对聚合对象的多种遍历。 3为遍历不同的聚合结构提供一个统一的接口(即, 支持多态迭代)。生活中的例子     迭代器提供一种方法顺序访问一个集合对象中各个元素而又不需要暴露该对象的内部表示。在早期的电视机中一个拨盘用来改变频道。当改变频道时需要手工转动拨盘移过每一个频道而不论这个频道是否有信号。现在的电视机使用[后一个]和[前一个]按钮。当按下[后一个]按钮时将切换到下一个预置的频道。想象一下在陌生的城市中的旅店中看电视。当改变频道时重要的不是几频道而是节目内容。如果对一个频道的节目不感兴趣那么可以换下一个频道而不需要知道它是几频道。                        代码实现     在面向对象 的软件设计中我们经常会遇到一类集合对象这类集合对象的内部结构可能有着各种各样的实现但是归结起来无非有两点是需要我们去关心的一是集合内部 的数据存储结构二是遍历集合内部的数据。面向对象设计原则中有一条是类的单一职责原则所以我们要尽可能的去分解这些职责用不同的类去承担不同的职 责。Iterator模式就是分离了集合对象的遍历行为抽象出一个迭代器类来负责这样既可以做到不暴露集合的内部结构又可让外部代码透明的访问集合内部的数据。下面看一个简单的示意性例子类结构图如下                      首先有一个抽象的聚集所谓的聚集就是就是数据的集合可以循环去访问它。它只有一个方法GetIterator()让子类去实现用来获得一个迭代器对象。        1 /// summary  2   3 /// 抽象聚集  4   5 /// /summary  6   7 public interface IList  8   9 { 10     IIterator GetIterator(); 11 } 抽象的迭代器它是用来访问聚集的类封装了一些方法用来把聚集中的数据按顺序读取出来。通常会有MoveNext()、CurrentItem()、Fisrt()、Next()等几个方法让子类去实现。 1 /// summary  2   3 /// 抽象迭代器  4   5 /// /summary  6   7 public interface IIterator  8 {  9     bool MoveNext(); 10  11     Object CurrentItem(); 12  13     void First(); 14  15     void Next(); 16 } 具体的聚集它实现了抽象聚集中的唯一的方法同时在里面保存了一组数据这里我们加上Length属性和GetElement()方法是为了便于访问聚集中的数据。 1 /// summary  2   3 /// 具体聚集  4   5 /// /summary  6   7 public class ConcreteList : IList  8 {  9     int[] list; 10  11     public ConcreteList() 12  13     { 14         list  new int[] { 1,2,3,4,5}; 15     } 16  17     public IIterator GetIterator() 18  19     { 20         return new ConcreteIterator(this); 21     } 22  23     public int Length 24  25     { 26         get { return list.Length; } 27     } 28  29     public int GetElement(int index) 30  31     { 32         return list[index]; 33     } 34 } 具体迭代器实现了抽象迭代器中的四个方法在它的构造函数中需要接受一个具体聚集类型的参数在这里面我们可以根据实际的情况去编写不同的迭代方式。 1 /** summary  2   3 /// 具体迭代器  4   5 /// /summary  6   7 public class ConcreteIterator : IIterator  8   9 { 10     private ConcreteList list; 11  12     private int index; 13  14     public ConcreteIterator(ConcreteList list) 15  16     { 17         this.list  list; 18  19         index  0; 20     } 21  22     public bool MoveNext() 23  24     { 25         if (index  list.Length) 26  27             return true; 28  29         else 30  31             return false; 32     } 33  34     public Object CurrentItem() 35  36     { 37         return list.GetElement(index) ; 38     } 39  40     public void First() 41  42     { 43         index  0; 44     } 45  46     public void Next() 47  48     { 49         if (index  list.Length) 50  51         { 52             index; 53         } 54     } 55 } 简单的客户端程序调用 1 /** summary  2   3 /// 客户端程序  4   5 /// /summary  6   7 class Program  8   9 { 10     static void Main(string[] args) 11  12     { 13         IIterator iterator; 14  15         IList list  new ConcreteList(); 16  17         iterator  list.GetIterator(); 18  19         while (iterator.MoveNext()) 20  21         { 22             int i  (int)iterator.CurrentItem(); 23             Console.WriteLine(i.ToString()); 24  25             iterator.Next(); 26         } 27  28         Console.Read(); 29  30     } 31  32 } .NET中Iterator中的应用 在.NET下实现Iterator模式对于聚集接口和迭代器接口已经存在了其中IEnumerator扮演的就是迭代器的角色它的实现如下 1 public interface IEumerator  2   3 {  4     object Current  5     {  6         get;  7     }  8   9     bool MoveNext(); 10  11     void Reset(); 12  13 } 属性Current返回当前集合中的元素Reset()方法恢复初始化指向的位置MoveNext()方法返回值true表示迭代器成功前进到集合中的下一个元素返回值false表示已经位于集合的末尾。能够提供元素遍历的集合对象在.Net中都实现了IEnumerator接口。 IEnumerable则扮演的就是抽象聚集的角色只有一个GetEnumerator()方法如果集合对象需要具备跌代遍历的功能就必须实现该接口。 1 public interface IEnumerable 2  3 { 4     IEumerator GetEnumerator(); 5 } Iterator实现要点 1迭代抽象访问一个聚合对象的内容而无需暴露它的内部表示。 2迭代多态为遍历不同的集合结构提供一个统一的接口从而支持同样的算法在不同的集合结构上进行操作。 3迭代器的健壮性考虑遍历的同时更改迭代器所在的集合结构会导致问题。
http://www.huolong8.cn/news/62930/

相关文章:

  • php网站开发实例教程下载中国中建设计集团有限公司
  • 上海企业网站制作方法自己做的网站怎么管理用户
  • 做得好的网站90设计赚钱
  • 腾讯网站安全检测ip地址做网站
  • 宣讲家网站官网加强作风建设快速建站软件排名
  • 优质的广州微网站建设台州中兴建设咨询有限公司网站
  • 网站h1标签用在哪里公司网站平台的作用
  • 珠海网站推广建设食品商购网站
  • 南京网站推广¥做下拉去118cr国外网页游戏网站
  • 一般在百度做网站多少钱超八成搜索网站存在信息泄露问题
  • 高端网站设计公司有上海公司注册一站式企业服务
  • 网站平台怎么推广营销网站售后调查系统
  • 自助建设手机网站做企业网站的尺寸是多少钱
  • 一个网站的建设需要哪些流程图响应式网站404页面怎么做
  • 经典企业网站欣赏溧阳网页设计
  • 网站开发属于无形资产福州小程序开发定制
  • 太原开发网站公司淘宝开店流程步骤图片
  • 海南建设网网站网站搜索页面怎么做
  • 定制网站建设的释义南昌城市旅游网站建设
  • wordpress 企业网站 教程事件营销ppt
  • 重庆网站建设业务招聘莱芜在线广告信息
  • 南通网站建设排名公司哪家好网站建设的广告投入
  • 漳州做网站建设网络运维工资一般多少
  • 建设银行网站怎么看交易记录电影网站设计说明书
  • 外贸网站推广方式cad协同设计平台
  • 章丘做网站单位哪家好进行公司网站建设方案
  • 买房网站排名高校校园网站建设的要求
  • 网站设计与实现毕业设计上海在建工程查询
  • 一个人做网站好累网站忘了怎么办
  • 四模网站叫别人做网站后怎么更改密码