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

有空间站的国家网站建设项目软件开发招标文件

有空间站的国家,网站建设项目软件开发招标文件,平面广告设计专业的学校,立网站系Unity实现设计模式——策略模式 策略模式是一种定义一些列算法的方法,这些所有的算法都是完成相同的工作,只是实现不同。它可以通过相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。 策略模式的 Strategy 类层次为 Contex…

Unity实现设计模式——策略模式

策略模式是一种定义一些列算法的方法,这些所有的算法都是完成相同的工作,只是实现不同。它可以通过相同的方式调用所有的算法,减少各种算法类与使用算法类之间的耦合。

策略模式的 Strategy 类层次为 Context 定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能。

策略模式就是用来封装算法的,但在实践中,我们发现可以用它来封装几乎任何类型的规则,只要在分析过程中听到需要在不同时间应用不同的业务规则,就可以考虑使用策略模式处理这种变化的可能性。

需要注意的是策略模式与工厂模式的区别
简单工厂模式下,产品类(父类)里包含了产品的属性,所以每个具体产品(子类)也就包含了同样的属性。
策略模式下,策略类(父类)里只提供了虚方法,并没有包含属性,所以每个具体的算法有自己独立的属性。

在这里插入图片描述
下面使用对于一个结构进行排序的例子来演示

1.SortStrategy(The ‘Strategy’ abstract class)

    abstract class SortStrategy{public abstract void Sort(List<string> list);}

2.派生类

(1)QuickSort

    class QuickSort : SortStrategy{public override void Sort(List<string> list){list.Sort(); // Default is QuicksortDebug.Log("-------QuickSorted list------- ");}}

(2)ShellSort

    class ShellSort : SortStrategy{public override void Sort(List<string> list){//list.ShellSort(); not-implementedDebug.Log("-------ShellSorted list------- ");}}

(3)MergeSort

    class MergeSort : SortStrategy{public override void Sort(List<string> list){//list.MergeSort(); not-implementedDebug.Log("-------MergeSorted list------- ");}}

3.SortedList(The ‘Context’ class)

    class SortedList{private List<string> _list = new List<string>();private SortStrategy _sortstrategy;public void SetSortStrategy(SortStrategy sortstrategy){this._sortstrategy = sortstrategy;}public void Add(string name){_list.Add(name);}public void Sort(){_sortstrategy.Sort(_list);// Iterate over list and display resultsforeach (string name in _list){Debug.Log(" " + name);}}}

4.测试

    public class StrategyPatternExample1 : MonoBehaviour{void Start(){// Two contexts following different strategiesSortedList studentRecords = new SortedList();studentRecords.Add("Samual");studentRecords.Add("Jimmy");studentRecords.Add("Sandra");studentRecords.Add("Vivek");studentRecords.Add("Anna");studentRecords.SetSortStrategy(new QuickSort());studentRecords.Sort();studentRecords.SetSortStrategy(new ShellSort());studentRecords.Sort();studentRecords.SetSortStrategy(new MergeSort());studentRecords.Sort();}}
http://www.yayakq.cn/news/633910/

相关文章:

  • wordpress页面设置教程关键词优化怎样做
  • 陕西购物商城网站建设邯郸医院网站建设
  • 给会所做网站东莞网络优化调查公司
  • 红安县城乡建设局官方网站wordpress登录没链接
  • 做网站要费用多少工商局官网入口
  • 隆尧建设局网站zencart网站
  • 用前端框架做自适应网站梧州论坛 肇庆
  • 盐城市城乡和住房建设厅网站软件开发模型图
  • 上海网站设计团队免备案域名购买平台
  • 如何登录中国建设银行河北分行网站wordpress免费中文主题下载
  • 网站建设的行业分析.net 快速网站开发
  • 有哪些档案网站网站上的链接怎么做的
  • 苏州网站公司排名前十wordpress 图像热点
  • 淘宝网(淘宝网)网站seo具体怎么做?
  • 昆明哪个公司做网站建设最好网站建设主机配置
  • 常州专业网站建设推广租办公室
  • 青海找人做网站多少钱网站 建设在作用是什么
  • win7 iis默认网站设置外贸网站优化谷歌关键词排名外包
  • 石家庄建网站做网站做推广有效果吗
  • 杭州免费自助建站模板网站制作怎么自己做
  • 网站移动端开发公司济南汽车网站设计
  • 学校网站的建设与使用情况网站推广策略成功的案例
  • 网站备案登录专业的购物网站定制
  • 有什么网站交互做的很好 知乎推广策略图片
  • 在线做名片做海报网站大作业做网站
  • 怎样自己做代刷网站深圳建设银行网上银行登录
  • 网站建设有什么技术张家港网站哪家做的好
  • 公司建设一个网站首页怎样做英文网站
  • 微信支付需要网站备案wordpress 文章付费
  • 潍坊网站建设案例免费咨询造成损害