class Strategy;
本程序是学习《Head First Design Pattern》做得程序,思想属于Head First 网址http://www.headfirstlabs.com/
策略模式Strategy
设计原则:
1.找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。
把会变化的部分取出并“封装”起来,让其他部分不会受到影响。
2.针对接口编程,而不是针对实现编程。
3.多用组合少用继承
策略模式Strategy 定义了算法族,分别封装起来,让它们之间可以
互相替换,此模式让算法的变化独立于使用算法的客户。
Authors:
Caoqi
Version:
0.001
Date:
September 21, 2007
See Also:
野鸭子类(Duck)
See Also:
模型鸭子类(Duck)
void main(char[][] args);
主程序
Example:
import std.stdio;
import strategy.FlyBehavior;
import strategy.FlyWithWings;
import strategy.QuackBehavior;
import strategy.Quack;
import strategy.MuteQuack;
import strategy.Squeak;
import strategy.Duck;
import strategy.MallardDuck;
public void main(char args[][]) {
Duck mallard = new MallardDuck();
mallard.performQuack();
mallard.performFly();
}
分享到:
相关推荐
dlang.org, dlang.org 网站的页面,编程语言的主页 D 语言网站 这个库包含了 D 语言网站插件的源文件,包括语言规范。文档和一些文章。Bugzilla Bug 跟踪程序论坛维基服务如果你希望贡献网站或者语言文档,请参阅 ...
"queue-Dlang"模块的具体实现可能根据实际需求和性能优化策略进行选择。 队列-Dlang的源代码可能包含以下关键组件: 1. 队列类(Queue):定义队列的基本操作,如构造函数、析构函数、enqueue、dequeue、peek、...
dlang请求 HTTP客户端库,受python-requests启发,目标是: 内存占用少 表现 简单的高级API 本机D实现 API文档: 目录 套接字工厂 SSL协议 的FTP 请求池 库配置 该库不使用vibe-d,但可以与vibe-d套接字一起...
**vim-dlang:在vim中高效地编写D语言** `vim-dlang` 是一个专门为 Vim 编辑器设计的插件,旨在为 D 语言提供强大的语法高亮、代码补全、错误检查和一系列增强功能,使D语言的开发工作更为便捷。这款插件对于那些...
2. 值类型与引用类型:D语言支持值类型(如struct)和引用类型(如class),允许开发者根据需求选择合适的内存管理策略。 五、并行与并发 D语言内置了线程库,支持多线程编程。它还有并发原语如mutex、semaphore和...
标题"juliad:将Julia嵌入Dlang"指出这是一个项目,目的是在D语言(Dlang)中集成Julia编程语言,使得开发者可以在D程序中直接调用Julia的功能,或者利用Julia的高性能计算能力。这种集成允许D程序员利用Julia的科学...
grpc-dlang D的gRPC实现。建造为D构建协议缓冲区编译器$ git clone https://github.com/dcarp/protobuf-d$ cd protobuf-d$ dub build :protoc-gen-d$ sudo cp build/protoc-gen-d /usr/local/bin为D构建gRPC插件$ ...
dlang的Docker Docker为D编程语言镜像dockerfile。 Docker映像 dmd 2.095.1 直流1.25.0 gdc 9.3.0-9 dmd的Docker pull命令 docker pull dlangchina/dlang-dmd 适用于LDC的Docker Pull命令 docker pull ...
《D语言std.uni代码生成器gen-uni-dlang详解》 在编程世界中,D语言是一种高效、现代且富有表达力的系统编程语言,它融合了C++的性能与Java的高级特性。gen-uni-dlang是专为D语言设计的一个代码生成器工具,其主要...
Dlang中的JerryScript 用于在Windows的“ build”文件夹中构建JerryScript的CodeBlocks项目 “ jerry_shell”中的简单JavaScript shell 带“ jerry_test”中的模块,库和测试的D项目 如何建造 查看文件夹“ build...
【标题】:“dlang-bot:自动化工具用于管理Bugzilla、GitHub和Trello引用” 【描述】:“dlang-bot是一款强大的自动化工具,专为D语言社区设计,它能够整合Bugzilla、GitHub和Trello等项目管理平台,实现跨平台的...
**D编程语言与dlang.org网站** D编程语言是一种高效、现代且通用的系统编程语言,由Walter Bright和Andrei Alexandrescu等人设计。它旨在结合C++的性能和C#的现代特性,提供一个既强大又简洁的开发环境。D语言以其...
这篇讨论的主题是“与DLang社区联系”,我们将探讨如何有效地参与到DLang社区,获取帮助、解决问题以及与其他开发者进行互动。 首先,社区联系的主要渠道之一是通过官方的Discussion Board或Discussions。这是一个...
Hunt-entity 是 D 编程语言的对象关系映射工具。dlang 数据库的对象关系映射 (ORM) 框架,支持 PostgreSQL 和 MySQL。
该工具可从s3 downloads.dlang.org存储桶中提取文件列表,并生成适当的index.html页面,以允许将该存储桶用作网站。... "s3bucket" : "downloads.dlang.org", "base_dir" : "/media/scratch/ddo-upload" }
它还引入了接口(`interface`),使得实现多重继承的模式更加灵活。 6. **模板** 类模板和函数模板允许编写泛型代码,提高了代码的复用性和效率。D语言的模板系统非常强大,支持模板元编程,可以在编译时执行复杂...
实验过的 DLang的DevOps经验
【标题】:“豆瓣电影实时”指的是一个实时更新的豆瓣电影数据接口或应用,它能够提供最新的电影信息,包括评分、评论、上映日期等。这个版本可能是开发者为了教学或研究目的而创建的一个示例项目,强调非商业使用。...
在IT行业中,Flash+XML滚动新闻代码是一种常见的网页动态效果技术,它结合了Adobe Flash的图形展示能力和XML的结构化数据存储与交换功能。Flash以其丰富的动画效果和交互性深受网页设计师的喜爱,而XML则提供了方便...