`
lgstarzkhl
  • 浏览: 328728 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

设计模式的原则

    博客分类:
  • java
阅读更多
单一职责:你不希望因为电脑内存损坏而更换CPU 吧,同样也不应该让一个类有多种
修改的理由。
对扩展开放,对修改封闭:你一定不希望电脑只有一个内存槽,加内存就要换主板吧,
程序也应该能在不修改原先程序的情况下就能扩展功能。
里氏替换:如果你买的DX9显卡不支持DX9特性,那么这个显卡一定没法用。如果父
类的方法在子类中没有实现那就晕了。在程序的世界中千万别认为鸟都会飞,先考虑清楚
将会有哪些鸟吧。
依赖倒置:针对接口编程,这样即使实现有变也不需要修改外部代码。其实,现在电脑
的硬件、网络通讯等都是符合这个原则的,比如USB 接口、PCI-E 接口、TCP/IP 协议。
接口隔离:花3000买一个带拍照、听MP3功能的手机还是花1000买一个手机、1000
买一个MP3、1000买一个数码相机呢?买了前者的话手机动不动就要修,而且还不一定是
因为不能打电话而修,买了后面三样的话即使修也不影响其它使用,你说买哪个?
记得看过一个例子很恰当,说是修电脑比修收音机简单多了。电脑坏了,更换一个零件即可,原
因是电脑中的各部分都是基于相对稳定的接口,而且部件各司其职,不会相互影响,电脑本身就是一
个非常符合设计原则的产品。收音机的修理没有这么简单了,没有什么部件是插件式的,会修收音机
的人肯定明白其中每一个部件的原理。
小程序就好像收音机,确实可以这么做,一共才一个人做的,即使重新做也用不了多少时间。几
十个人的大项目如果要改一个需求需要牵涉所有人来修改,那么这个项目用不了多少时间就会因为维
护成本太大,维护后BUG 太多而报废。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics