摘要: 5 Guiding Principles for Experience Designers1. Understand the underlying problem before attempting to solve itYour work should have purpose—addressing actual, urgent problems that people are facing. Make sure that you can clearly articulate the core of the issue before spending an ounce of time on 阅读全文
posted @ 2012-02-22 21:03 chengfei164 阅读(169) 评论(0) 推荐(1) 编辑
摘要: command模式还是很清晰明了的:我这里想说的是order的实例是怎么从client传递到receiver的。 如果client和receiver是在一个进程里,自然无需多言。但如果这是一个分布式的系统呢?我想一般的处理应该是用持久化,把order实例序列化成xml,当作消息从client端发送到receiver端, receiver端根据xml描述生成object实例,执行然后删掉。这个过程我没实际做过,我现在work on的系统是这么处理的:首先,这个系统有自己的UI和逻辑层的同步机制,UI和逻辑层是两个独立的进程,可以部署到一台机器或者不同的机器上。所有在逻辑层的对象在UI层都有自己的 阅读全文
posted @ 2012-02-22 18:14 chengfei164 阅读(705) 评论(0) 推荐(1) 编辑
摘要: 不要光考虑class之间的继承关系,有时候包含关系也能派上大用场。考虑以下场景,ThreadScheduler类,既要考虑不同的调度方式,还要考虑到不同的操作系统平台。如果按继承关系来设计,如下图,最后派生出来的子类的数目是N1×N2, 其中N1是不同调度方式的数目,N2是不同操作系统平台的数目如果考虑到以下事实,在每个子类里,有一部分逻辑只是和平台相关的,而和具体的调度方式无关。那么这种设计显然的会产生很大的代码重复。自然的,我们可以把平台相关的逻辑单独的拿出来Use the Bridge pattern when:you want run-time binding of the 阅读全文
posted @ 2012-02-22 13:50 chengfei164 阅读(224) 评论(0) 推荐(1) 编辑