`
jinheking
  • 浏览: 77684 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

DLang策略模式

阅读更多
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();
   }
分享到:
评论
4 楼 jinheking 2007-09-24  
我会尝试着把模式详尽剖析。不过能力有限,望大家多提宝贵意见。
3 楼 DavidL 2007-09-23  
不错的理念,赞一个。
能详尽剖析就更好了
2 楼 shawind 2007-09-21  
可以像很多D项目一样,自己写一个all.d,在这里面import上所有的module
以后要只要import all就行了.
1 楼 jinheking 2007-09-21  
引用module 怎么让我的程序做的像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;  


??应用这么多次?

相关推荐

    dlang.org, dlang.org 网站的页面,编程语言的主页.zip

    dlang.org, dlang.org 网站的页面,编程语言的主页 D 语言网站 这个库包含了 D 语言网站插件的源文件,包括语言规范。文档和一些文章。Bugzilla Bug 跟踪程序论坛维基服务如果你希望贡献网站或者语言文档,请参阅 ...

    queue-Dlang:D 编程语言的基本 FIFO 队列模块

    "queue-Dlang"模块的具体实现可能根据实际需求和性能优化策略进行选择。 队列-Dlang的源代码可能包含以下关键组件: 1. 队列类(Queue):定义队列的基本操作,如构造函数、析构函数、enqueue、dequeue、peek、...

    dlang-requests:受python-requests启发的dlang http客户端库

    dlang请求 HTTP客户端库,受python-requests启发,目标是: 内存占用少 表现 简单的高级API 本机D实现 API文档: 目录 套接字工厂 SSL协议 的FTP 请求池 库配置 该库不使用vibe-d,但可以与vibe-d套接字一起...

    vim-dlang:vim中的D编程语言支持

    **vim-dlang:在vim中高效地编写D语言** `vim-dlang` 是一个专门为 Vim 编辑器设计的插件,旨在为 D 语言提供强大的语法高亮、代码补全、错误检查和一系列增强功能,使D语言的开发工作更为便捷。这款插件对于那些...

    learn_dlang:学习D编程语言

    2. 值类型与引用类型:D语言支持值类型(如struct)和引用类型(如class),允许开发者根据需求选择合适的内存管理策略。 五、并行与并发 D语言内置了线程库,支持多线程编程。它还有并发原语如mutex、semaphore和...

    juliad:将Julia嵌入Dlang

    标题"juliad:将Julia嵌入Dlang"指出这是一个项目,目的是在D语言(Dlang)中集成Julia编程语言,使得开发者可以在D程序中直接调用Julia的功能,或者利用Julia的高性能计算能力。这种集成允许D程序员利用Julia的科学...

    grpc-dlang:用于D编程语言的grpc,基于hunt-http库

    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插件$ ...

    docker-dlang:Docker镜像Dockerfile的D编程语言。 支持DMD LDC GDC等

    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 ...

    gen-uni-dlang:dlang std.uni代码生成器工具

    《D语言std.uni代码生成器gen-uni-dlang详解》 在编程世界中,D语言是一种高效、现代且富有表达力的系统编程语言,它融合了C++的性能与Java的高级特性。gen-uni-dlang是专为D语言设计的一个代码生成器工具,其主要...

    d-jerryscript:在Windows中将JerryScript与Dlang一起使用

    Dlang中的JerryScript 用于在Windows的“ build”文件夹中构建JerryScript的CodeBlocks项目 “ jerry_shell”中的简单JavaScript shell 带“ jerry_test”中的模块,库和测试的D项目 如何建造 查看文件夹“ build...

    dlang-bot:dlang-bot用于自动bugzilla,github和trello引用|

    【标题】:“dlang-bot:自动化工具用于管理Bugzilla、GitHub和Trello引用” 【描述】:“dlang-bot是一款强大的自动化工具,专为D语言社区设计,它能够整合Bugzilla、GitHub和Trello等项目管理平台,实现跨平台的...

    dlang.org:dlang.org网站的页面,D编程语言的所在地

    **D编程语言与dlang.org网站** D编程语言是一种高效、现代且通用的系统编程语言,由Walter Bright和Andrei Alexandrescu等人设计。它旨在结合C++的性能和C#的现代特性,提供一个既强大又简洁的开发环境。D语言以其...

    讨论:与DLang社区联系

    这篇讨论的主题是“与DLang社区联系”,我们将探讨如何有效地参与到DLang社区,获取帮助、解决问题以及与其他开发者进行互动。 首先,社区联系的主要渠道之一是通过官方的Discussion Board或Discussions。这是一个...

    是D编程语言的对象关系映射工具 dlang数据库的对象关系映射ORM框架,支持PostgreSQL和MySQL

    Hunt-entity 是 D 编程语言的对象关系映射工具。dlang 数据库的对象关系映射 (ORM) 框架,支持 PostgreSQL 和 MySQL。

    downloads.dlang.org:管理downloads.dlang.org的工具

    该工具可从s3 downloads.dlang.org存储桶中提取文件列表,并生成适当的index.html页面,以允许将该存储桶用作网站。... "s3bucket" : "downloads.dlang.org", "base_dir" : "/media/scratch/ddo-upload" }

    学习D语言的tango:第二章 D语言基础

    它还引入了接口(`interface`),使得实现多重继承的模式更加灵活。 6. **模板** 类模板和函数模板允许编写泛型代码,提高了代码的复用性和效率。D语言的模板系统非常强大,支持模板元编程,可以在编译时执行复杂...

    experimentd:DLang的DevOps经验

    实验过的 DLang的DevOps经验

    豆瓣电影实时

    【标题】:“豆瓣电影实时”指的是一个实时更新的豆瓣电影数据接口或应用,它能够提供最新的电影信息,包括评分、评论、上映日期等。这个版本可能是开发者为了教学或研究目的而创建的一个示例项目,强调非商业使用。...

    Flash+XML滚动新闻代码

    在IT行业中,Flash+XML滚动新闻代码是一种常见的网页动态效果技术,它结合了Adobe Flash的图形展示能力和XML的结构化数据存储与交换功能。Flash以其丰富的动画效果和交互性深受网页设计师的喜爱,而XML则提供了方便...

Global site tag (gtag.js) - Google Analytics