06-12-14,07-1-29
来源:互联网 发布:淘宝网天猫帽子 编辑:程序博客网 时间:2024/05/17 08:51
// 06-12-14
关于对象的控制权限的问题。
一个对象可以控制其他的对象,但是,有时候,这种控制权需要进行良好的设计。
如果一个对象可以任意的驱动其他对象,那么,你的代码将很难维护。
如果一个容器内的对象可以将主流程从这个容器转移到其他地方,那么,你的容器将会有莫名其妙的逻辑,因为他没有对流程的控制权。
这个时候,容器内的对象就不能随意转移流程,转移流程的操作交给容纳他的容器来处理,这样容器将会有更好逻辑。
〈07-2-13 比如一个状态控制着一个状态工厂,使用这个状态的类就会失去状态切换的控制,因为他没有状态工厂
//07-1-17
1 渲染器的接口
渲染器不需要绘图的方法,只需要创建窗口,切换缓存,清除缓存之类,而绘制图片、点、矩形等的方法应该放在表面类中。
这样就不用将渲染类直接交给其他需要显示的对象了,而只需要将后缓存所用的表面给他们使用,另外,所有的对象都画在一个表面上了,那么我们还可以灵活使用这个表面,对这个表面作些特殊处理,这带来了很大的灵活性。
2 字体
字体类的字体绘制方法确实需要放在字体类中,因为绘制过程中必须要对字体的数据做特殊的处理,但是它的绘制目标和绘制所用的方法,都将来自表面类,也就是说,字体绘制的过程其实是在表面上作画。
3 工厂模式
关于工厂类。创建表面,创建玩家角色,创建飞行道具等对象可以使用工厂模式。
创建表面的工厂可以保存这个表面的引用方便再次创建和集中销毁,创建玩家角色和飞行道具的工厂可以在对象间通用一些数据,也可以使用池。
4 一般的接口问题
在设计接口的时候,有些简单的方法,比如GET和SET类的方法,不要将方法所操作的数据放在接口里面,因为你的接口被别人实现的时候,别人可能已经通过各种途径有了具体的数据实体。
5 工厂模式续
创建对象的对象工厂对象工厂是很有用的,它可以使得对象之间共享一些数据,而且可以使的对象的创建工作更加灵活。
比如一个类 NPC, 游戏世界必然会有很多的这个类的对象,但是他们的图形或者碰撞数据
都可以通用,这些通用的数据就是我以前说的静态数据,那么我们必须用一个代理对象来完成NPC对象的创建工作,这就需要Factory类,当你创建NPC的时候,它会把以前加载NPC用的通用数据给你,这样就可以节省空间。另外,工厂类还可以在内部使用对象池来存放对象,解决动态申请内存带来的效率问题。所以,这个模式是很有用的。
//07-1-19
对于在程序开始时需要启动的模块,可以专门给他们写一个模块管理的类。
这个类可以注册模块,然后只管启动和关闭。
<07-2-23,有更好的设计,见07-2-3
//07-1-29
1 接口的设计
接口里面的数据存取方法一般都很简单,如GET和SET类,我们如果将这些方法变成接口的话,会牺牲效率,但是如果是内联的话,必须将数据放在接口里面,这又有点不妥。
一个折中的办法是GET和SET类方法是虚拟的,也就是说,子类可以使用接口里面的数据和对应的存取方法,也可以使用自己的数据,然后重载存取方法。
〈07-2-13,这些都不是最重要的,最重要的我想你明白。
- 06-12-14,07-1-29
- 2011-7-12 14:06:07
- 2011-06-07 14:15:07
- 2011-06-07 14:14:52
- 12,06,07 CLOUDY , HOT
- 2012-07-06-1
- [2016/06/29] LeetCode / Java - Day 07 -
- SQL 学习笔记 14-06-29
- 2011-06-07 14:15:49
- 07年12月29(晚上)
- 2014-07-29 18:12
- [06-12-29]J2SE的学习困惑
- 2011-7-29 12:44:06
- 06~12月記事12/1
- 2011-06-07 10:45:12
- 学习笔记-选择排序 14/12/29
- 学习笔记-冒泡排序 14/12/29
- 结你妈逼婚 2011-06-12 08:36:29
- 《ASCE1885的网络编程》---IP数据报格式
- 数据本地缓存方法
- 编程思绪,06-6-16 到 06-11-23
- 今日e语-7月15日
- Hibernate 检索策略详解 (1)
- 06-12-14,07-1-29
- 07-2-1,07-2-7
- 2007-2-13,2007-2-24
- pChard——php生成图表功能
- 2007-2-26,2007-8-16
- 结构体的一点随笔
- 2007-8-21,06-9-11
- 怎样限制web服务器在线人数
- 06-9-21,06-9-22