惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
有赞技术团队
有赞技术团队
J
Java Code Geeks
H
Hackread – Cybersecurity News, Data Breaches, AI and More
美团技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Hugging Face - Blog
Hugging Face - Blog
人人都是产品经理
人人都是产品经理
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
博客园 - 【当耐特】
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
The Cloudflare Blog
Microsoft Azure Blog
Microsoft Azure Blog
腾讯CDC
Vercel News
Vercel News
IT之家
IT之家
MyScale Blog
MyScale Blog
博客园_首页
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
罗磊的独立博客

博客园 - 云水浮萍

结构体和类中属性定义需要static地方 十万个为什么收集 群里人问的消息切换分页问题,我就标记一下 AnsiString类型定义的时候可以直接指定代码页,比如950繁体字,936日文 CopyMemory Move使用笔记 System.Length 函数 Delphi Helper Record Class 向量定义笔记 关于日期与字符串转换时出错的分隔符,小记一下容易忘记 类型与泛型标记 http://docwiki.embarcadero.com/RADStudio/XE7/en/Delphi_Data_Types Delphi中GUID相等检查中经典指针应用 test是否被执行? 每次看到某个数据结构的时候,有两个指针,一个起始,一个结束,一直没想明白为何是起始与结束,不是起始加数量,是怎么操作的? 给自己一个书单 pureMVC学习之一 队列与DelphiXe新语法 猫儿山之行计划书 一个错误,一个教训,关于堆栈平衡 - 云水浮萍 - 博客园
泛型与无聊
云水浮萍 · 2015-01-16 · via 博客园 - 云水浮萍

泛型与无聊

type
  TActionComponent = class(TObject)
  public
     procedure Execute;virtual;
  end;

  TStuckPig = class(TActionComponent)
  public
     procedure Execute;override;
  end;

  TRole = class(TObject)
  public
    Name:String[255];
    ActionList:TList<TActionComponent>;
  end;

  TWorld = class(TObject)
  public
     ObjectList:TDictionary<string,TList<TRole>>;
  end;

  TForm2 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
var
  World:TWorld;
  Roles:TList<TRole>;
  Role:TRole;
  ActionComponent:TActionComponent;
begin
  World:=TWorld.Create;

  //角色:屠夫
  Role:=TRole.Create;
  Role.Name:='屠夫';
  //杀猪动作或者叫技能可能更准确
  ActionComponent:=TStuckPig.Create;
  Role.ActionList.Add(ActionComponent);
  Roles:=TList<TRole>.Create;
  Roles.Add(Role);

  //角色:将军
  Role:=TRole.Create;
  Role.Name:='骠骑大将军';
  Roles.Add(Role);
  //角色:书法家
  Role:=TRole.Create;
  Role.Name:='书法家';
  Roles.Add(Role);
  //角色:酒鬼
  Role:=TRole.Create;
  Role.Name:='酒鬼';
  Roles.Add(Role);
  //赋与张飞各角色
  World.ObjectList.Add('张飞',Roles);

end;

posted @ 2015-01-16 17:34  云水浮萍  阅读(197)  评论()    收藏  举报