博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS设计模式学习(19)策略
阅读量:6907 次
发布时间:2019-06-27

本文共 362 字,大约阅读时间需要 1 分钟。

1 前言

面向对象软件设计中,我们可以把相关算法分离为不同的类,成为策略。与这种做法有关的一种设计模式成为策略模式。

2 详述

2.1 简述

策略模式中得一个关键角色是策略类,它为所有支持的或相关的算法声明了一个共同接口。另外,还有使用策略接口来实现相关算法的具体策略类。场景类的对象配置有一个具体策略对象的实例,场景对象使用策略接口调用由具体策略类定义的算法。

定义一系列算法,把他们一个个封装起来,并且使他们可相互替换,本模式使得算法可独立于使用它的客户而变化。

2.2 何时使用

(1)一个类在其操作中使用多个条件语句来定义许多行为。我们可以把相关的条件分支移到他们自己的策略类中。

(2)需要算法的各种变体。

(3)需要避免把重复的,与算法相关的数据结构暴露给客户端。

3 结语

以上是所有内容,希望对大家有所帮助。

转载地址:http://clgdl.baihongyu.com/

你可能感兴趣的文章
荷兰商业银行使用精益领导力推行改进
查看>>
FoundationDB宣布记录层支持关系数据库语义、模式管理和索引功能
查看>>
记住,永远不要在MySQL中使用“utf8”
查看>>
逃离方法牢笼
查看>>
The Economist经济学人是如何使用Go语言构建内容平台微服务架构的?
查看>>
伯克利开源工具库RLib现已支持大规模多智能体强化学习
查看>>
Cosmos DB:全球分布式数据库
查看>>
苹果发布Core ML 2
查看>>
蚂蚁金服开源服务注册中心 SOFARegistry
查看>>
MPJ Express 内容总结
查看>>
Stream从Python切换到Go的原因
查看>>
angular2 ng2-file-upload上传
查看>>
百度成立国内首个深度学习教育联盟,将制定行业标准
查看>>
Oracle开源Fn,加入Serverless之争
查看>>
用 JavaScript 实现链表操作 - 04 Insert Nth Node
查看>>
Visual Studio 2017 15.5预览版添加对F# Core及Standard的支持
查看>>
Checkly如何借助Terraform实现零宕机部署
查看>>
放弃OpenStack?恐怕还不到时候
查看>>
Kubernetes上的十大应用程序
查看>>
QASymphony发布新的中心化自动测试及行为驱动测试产品
查看>>