设计模式是规则吗?
地上本没有路
![](/icons/13609dou.gif)
走得人多了也就成了路
![](/icons/13609dou2.gif)
设计模式如同此理
![](/icons/13609dou.gif)
它是经验
![](/icons/13609de.gif)
传承
![](/icons/13609dou.gif)
并非体系;是被前人发现
![](/icons/13609dou.gif)
经过整理总结形成了
![](/icons/13609yi.gif)
套某
![](/icons/13609yi.gif)
类问题
![](/icons/13609de.gif)
![](/icons/13609yi.gif)
般性解决方案
![](/icons/13609dou.gif)
而不是被设计出来
![](/icons/13609de.gif)
定性规则;它不像算法那样可以照搬照用
设计模式是架构吗?
架构和模式应该是
![](/icons/13609yi.gif)
个属于相互涵盖
![](/icons/13609de.gif)
过程
![](/icons/13609dou.gif)
但是总体来说架构更加关注
![](/icons/13609de.gif)
是所谓
![](/icons/13609de.gif)
High-Level Design,而模式关注
![](/icons/13609de.gif)
重点在于通过经验提取
![](/icons/13609de.gif)
“准则或指导方案”在设计中
![](/icons/13609de.gif)
应用
![](/icons/13609dou.gif)
因此在区别层面考虑问题
![](/icons/13609de.gif)
时候就形成了区别问题域上
![](/icons/13609de.gif)
模式
![](/icons/13609dou2.gif)
模式
![](/icons/13609de.gif)
目标是
![](/icons/13609dou.gif)
把共通问题中
![](/icons/13609de.gif)
不变部分和变化部分分离出来
![](/icons/13609dou2.gif)
不变
![](/icons/13609de.gif)
部分
![](/icons/13609dou.gif)
就构成了模式
![](/icons/13609dou.gif)
因此
![](/icons/13609dou.gif)
模式是
![](/icons/13609yi.gif)
个经验提取
![](/icons/13609de.gif)
“准则”
![](/icons/13609dou.gif)
并且在
![](/icons/13609yi.gif)
次
![](/icons/13609yi.gif)
次
![](/icons/13609de.gif)
实战中得到验证
![](/icons/13609dou.gif)
在区别
![](/icons/13609de.gif)
层次有区别
![](/icons/13609de.gif)
模式
![](/icons/13609dou.gif)
小到语言实现
![](/icons/13609dou.gif)
大到架构
![](/icons/13609dou2.gif)
在区别
![](/icons/13609de.gif)
层面上
![](/icons/13609dou.gif)
模式提供区别层面
![](/icons/13609de.gif)
指导
设计模式
![](/icons/13609dou.gif)
软件Software
![](/icons/13609de.gif)
永恒的道?
这个问题没有答案
![](/icons/13609dou.gif)
有
![](/icons/13609de.gif)
只是讨论
![](/icons/13609dou.gif)
看
![](/icons/13609yi.gif)
下
![](/icons/13609yi.gif)
位前辈结合建筑学得出
![](/icons/13609de.gif)
几点心得体会吧:
和建筑结构
![](/icons/13609yi.gif)
样
![](/icons/13609dou.gif)
软件Software中亦有诸多
![](/icons/13609de.gif)
“内力”
![](/icons/13609dou2.gif)
和建筑设计
![](/icons/13609yi.gif)
样
![](/icons/13609dou.gif)
软件Software设计也应该努力疏解系统中
![](/icons/13609de.gif)
内力
![](/icons/13609dou.gif)
使系统趋于稳定、有生气
![](/icons/13609dou2.gif)
![](/icons/13609yi.gif)
切
![](/icons/13609de.gif)
软件Software设计都应该由此出发
任何系统都需要有变化
![](/icons/13609dou.gif)
任何系统都会走向死亡
![](/icons/13609dou2.gif)
作为设计者
![](/icons/13609dou.gif)
应该拥抱变化、利用变化
![](/icons/13609dou.gif)
而不是逃避变化
好
![](/icons/13609de.gif)
软件Software只能“产生”而不能“创造”
![](/icons/13609dou.gif)
我们所能做
![](/icons/13609de.gif)
只是用
![](/icons/13609yi.gif)
个相对好
![](/icons/13609de.gif)
过程
![](/icons/13609dou.gif)
尽量使软件Software朝向好
![](/icons/13609de.gif)
方向发展
需要设计模式吗?
答案是肯定
![](/icons/13609de.gif)
![](/icons/13609dou.gif)
但你需要确定
![](/icons/13609de.gif)
是模式
![](/icons/13609de.gif)
应用是否过度?我得承认
![](/icons/13609dou.gif)
世界上有很多天才
![](/icons/13609de.gif)
![](/icons/13609chengxu.gif)
员
![](/icons/13609dou.gif)
他可以在
![](/icons/13609yi.gif)
段代码中包含6 种设计模式
![](/icons/13609dou.gif)
也可以不用模式而把设计做得很好
![](/icons/13609dou2.gif)
但我们
![](/icons/13609de.gif)
目标是追求有效
![](/icons/13609de.gif)
设计
![](/icons/13609dou.gif)
而设计模式可以为这个目标提供某种参考模型、设计思路方法
我们不需要奉GOF
![](/icons/13609de.gif)
设计模式为圭臬
![](/icons/13609dou.gif)
但合理
![](/icons/13609de.gif)
运用设计模式
![](/icons/13609dou.gif)
才是正确
![](/icons/13609de.gif)
抉择
![](/icons/13609dou2.gif)
很多人看过GOF
![](/icons/13609de.gif)
![](/icons/13609smhl.gif)
Design Patterns
![](/icons/13609smhr.gif)
![](/icons/13609dou.gif)
对这23 种模式也背得滚瓜烂熟
![](/icons/13609dou2.gif)
但重要
![](/icons/13609de.gif)
不是你熟记了多少个模式
![](/icons/13609de.gif)
名称
![](/icons/13609dou.gif)
关键还在于付诸实战
![](/icons/13609de.gif)
运用
![](/icons/13609dou2.gif)
为了有效地设计
![](/icons/13609dou.gif)
而去熟悉某种模式所花费
![](/icons/13609de.gif)
代价是值得
![](/icons/13609de.gif)
![](/icons/13609dou.gif)
![](/icons/13609yinwei.gif)
很快你会在设计中发现这种模式真
![](/icons/13609de.gif)
很好
![](/icons/13609dou.gif)
很多时候它令得你
![](/icons/13609de.gif)
设计更加简单了
其实在软件Software设计人员中
![](/icons/13609dou.gif)
唾弃设计模式
![](/icons/13609de.gif)
可能很少
![](/icons/13609dou.gif)
盲目夸大设计模式功用
![](/icons/13609de.gif)
反而更多
![](/icons/13609dou2.gif)
言必谈“模式”
![](/icons/13609dou.gif)
并不能使你成为优秀
![](/icons/13609de.gif)
架构师
![](/icons/13609dou2.gif)
真正出色
![](/icons/13609de.gif)
设计师
![](/icons/13609dou.gif)
懂得判断运用模式
![](/icons/13609de.gif)
时机
![](/icons/13609dou2.gif)
还有
![](/icons/13609yi.gif)
个问题是
![](/icons/13609dou.gif)
很多才踏入软件Software设计领域
![](/icons/13609de.gif)
人员
![](/icons/13609dou.gif)
往往对设计模式很困惑
![](/icons/13609dou2.gif)
对于他们来说
![](/icons/13609dou.gif)
由于没有项目
![](/icons/13609de.gif)
实际经验
![](/icons/13609dou.gif)
OO
![](/icons/13609de.gif)
思想也还未曾建立
![](/icons/13609dou.gif)
设计模式未免过于高深了
![](/icons/13609dou2.gif)
其实
![](/icons/13609dou.gif)
即使是非常有经验
![](/icons/13609de.gif)
![](/icons/13609chengxu.gif)
员
![](/icons/13609dou.gif)
也不敢夸口对各种模式都能合理应用
延伸阅读
最新评论