首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

关于state形式的疑问

2013-01-23 
关于state模式的疑问?按照类图,我们知道context类包含state抽象类。但实际写代码时,为什么state类中也有con

关于state模式的疑问?
按照类图,我们知道context类包含state抽象类。
但实际写代码时,为什么state类中也有context类的引用,而类图却没有表示?那不是成了两个类之间相互引用了吗?是一种不良设计吧?
请解惑?
[解决办法]
互相引用是正常,有时候是需要。
context要知道state的信息,有时候state也需要知道context的信息,有时候需要给context中的属性赋值,用callback的话其实也是一种引用。
[解决办法]
书上的TCP例子中,TCP的各个State的方法的参数有TCPConnection,因此不再需要一个显式的引用,如果采用显示的引用,那在调用State的方法前,还需要进行State和TCPConnection的绑定,做为这个例子而言,显式的绑定只是带来了麻烦,没有必要,因为各个State自身并无状态,不需要长时间的保持与TCPConnection的关系

热点排行