运用多种设计模式的综合案例_从一个工程实例讲讲我理解的设计模式

从一个工程实例讲讲我理解的设计模式

(2010-07-13 22:47:24)

标签:

设计模式

实例

it

这是一个五张牌的游戏(俺小时候发明的,嘻嘻)。那么用程序将其实现,用到的设计模式,整理如下:

1:观察者模式。也叫发布订阅模式。比如N个人一起打牌,共连一个服务器。每个人都算一个客户端,那么每个客户端都向服务端订阅消息。服务端一接收到某人打出的牌,就会将数据更新到每一个客户当中。如果途中某个人不打了,点击退出或逃跑,那么将取消订阅。伺候服务端就不为他更新消息了。

2:state模式。也叫状态机模式。这是我很多系统设计中用到的模式。在服务端的设计中,必然会有很多的状态,比如洗牌状态,发牌状态,接受客户端信息状态,更新客户端信息状态,最后一轮状态,结束状态。每个状态之间根据不同条件会产生不同的跳转。

3:bridge模式。将一维的耦合化为二维来拆分。比如每张牌都有两个属性,一个是数值,一个是花色。当数值相同的时候,可能还有比较花色的大小。那么可以定义一个数值类,一个花色类。

注意:我这个牌花色不是很重要。如果某些玩法花色很重要,比如升级。那么编升级最好的方式是要将花色的属性拿掉,而多定义四种类:红桃牌类,黑桃牌类,梅花牌类,方片牌类。一旦有这四种牌,那么洗牌之后,最好用工厂模式来生成众多的牌类!

所以记住:以后编程,能想着将属性剥离,用多个类来代替,将是升华你面向对象的思想的一

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值