游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2359|回复: 3

如何设计这样的类

[复制链接]

13

主题

79

帖子

81

积分

注册会员

Rank: 2

积分
81
QQ
发表于 2010-4-2 10:27:00 | 显示全部楼层 |阅读模式
现在想实现界面的图文混排。主要设计3个东西,一个是存储元素属性的类。比如图片元素包含图片大小,帧数以及文件路径等
第二个是管理这些元素的类。比如插入或删除了上面提到的元素,对这些元素的位置进行管理。如果上面元素的类是ItemInfoBase那么这个类应该有个list<ItemInfoBase*>m_ItemInfos的东西来管理对元素的操作。

第三个是负责显示这些元素信息的类并且提供对第二个类的对象插入或删除的操作。如果第二个类是ItemBase那么这个类应该有个list<ItemBase*>m_Items东西来管理对ItemBase元素的操作。

就好比是listBox(listBox由好多个listBoxItem组成, listBoxItem由可能包含图片或文字信息)

现在主要问题是对这些元素要求有两种显示方法,一种是用类似画笔之类的东西直接把这些东西画出来,另一种是用窗口的方式(这个时候每个ItemInfoBase都要比第一种显示方式的元素多一个类型Window* 的这样的一个属性).

如何设计好这些类,感觉第一显示种方式和第二种显示方式中有很多可以重用的代码,又有很多不一样的地方

12

主题

78

帖子

92

积分

注册会员

Rank: 2

积分
92
发表于 2010-4-8 14:47:00 | 显示全部楼层

Re: 如何设计这样的类

我觉得,数据可以设计成一个类。 显示可以设计成一个类。两者的结合部可以设计成一个类。

如果代码的复用很高,应该将特定功能抽象成一个父类。子类只实现自己特别的部分。

4

主题

10

帖子

38

积分

注册会员

Rank: 2

积分
38
发表于 2010-4-12 11:06:00 | 显示全部楼层

Re:如何设计这样的类

mvc结构适合你,   数据和显示分开,   数据可以是文字, 可以是图片, 看你怎么封装。

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2010-4-19 13:29:00 | 显示全部楼层

Re:如何设计这样的类

struct obj
{
int x,y,width,height;
char* text;
Image* img;
};

class obj_manager
{
struct obj* list;
....
};
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-17 09:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表