帐号   密码      自动登录 找回密码 加入我们
    

中国诗人论坛|永远年轻的诗歌论坛|中诗网|中国诗人网|中国网络诗歌的源头

搜索
查看: 243|回复: 1

设计原则、模式与生活

[复制链接]
发表于 2019-4-8 17:46:40 | 显示全部楼层 |阅读模式
《设计原则、模式与生活》

【0】 四人帮和降龙十八掌

GoF,四人帮(Gang of Four,或Group of Four)

Erich Gamma:艾瑞克·伽玛
Richard Helm:理查德·海尔姆
Ralph Johnson:拉尔夫·约翰森
John Vlissides:约翰·威利斯迪斯

这四个人,被称为四人帮(或四人组),是Java界的顶级大师,合著了《设计模式》(《Design Patterns》)一书。
该书全称《设计模式:可复用面向对象软件的基础》(《Design Patterns: Elements of Reusable Object-Oriented Software》)

书中目录列举了23种Java语言程序的设计模式:
这23种设计模式,因为是四人帮一起弄出来的,所以叫GoF23。

GoF23,正是Java江湖中武林秘笈的降龙十八掌。

《设计模式》中除了列举和讲解固定的23种设计模式,还提出了OO语言的基本设计原则。


(一)OCP:开闭原则(Open-Closed Principle)

【1】开闭原则1——对扩展开放

(1)封闭保守,一成不变

农业社会,生活方式千年不变
看上去无比稳定和安然
实则是一潭死水,毫无波澜

静谧的田园牧歌式的生活
想像中无比美好而详和
本质上却充满了内生的封闭性

传统的生活方式,无论有人告诉你:
那里边有多少的幸福和甜蜜
事实上,它静止而难以向上生长
不具备发展的特性,注定了无法赢得未来
从悠远的过去一成不变的生活着
保守而不思变革,观念沉重而迂腐
父母在而不远游,安于土而重难迁
画地以为牢,作茧以自缚
在令人窒息的氛围中,一条道走到黑
而浑然不知、如墮深梦,这是一件多么可怕的事情

黑暗即为洪水,地球即为方舟
纵然身下川流不息,凶险万分
一个只想呆在船上的人,纵然大陆就眼前,却总也不能上岸
一个认为船板只是木片的人,自然不能理解佛要渡谁
一个刻舟求剑的人,流动的河流将是它永远的坟墓



(2)思变

打破这一切
开放,思变,发展
一切才有希望


【2】开闭原则2——对修改关闭

坚船利炮,打开国门,是一种悲剧
开膛破肚,生个孩子,并非首善之举

更好的方式是:面向扩展开放,而面向修改关闭

就像让传统的归于传统,保护传统又融入现代
采用提供接口的方式,将传统与现代对接
将传统农业纳入现代工业社会的体系当中
农业作为工业的基础,工业反哺农业
既发挥二者各自功用和长处,又让二者相得益彰

打破的是传统农业社会的生产生活方式
而不是破坏农业本身

拥有先进的近现代文明和技术条件
而采用入侵和破坏的方式去进入另一个国家
永远都是可耻和非正义的


(二)实现现代化的思路和基本途径:解藕-分工-工厂化和专业化

【1】伟大的现代思想:解藕

藕合性,即事物或对象之间的相互依赖性
藕合度,即事物或对象之间的相互依赖程度。

松藕合,即事物或对象之间的藕合度较低的一种状态

解藕,即降低事物或对象之间的藕合度,达到松藕合状态。

解藕是一种思想和根据这种思想进行的相关操作
解藕的目标是达到松藕合的状态。


【2】分工1:方法或功能封装上单一化或元子化

术业有专工,隔行如隔山要把一件事情做好,首先要分工,
分工才能专深,才能做好
并在相应的领域或方面做到极致
臻于完美,而难以超越

分工是达到专业化的前提

而极致的分工,谋求事物功能上的单一化
或对象方法元子化

将每一个单一的功能
独立封装成一个独立的对象方法
一心一意只做一件事,并把它做到最好

单例模式,是封装上单例化和元子化的典型案例


【3】分工2:拿来主义

不要像一个传统农村的农民一样
饭自己做,衣服自己洗,地自己耕
想吃饺子,自己种麦子,
自己可磨面,自己和面、擀面下饺子
同样的道理,不要像传统的国企那样
大而全、小而全,要走出小农意识
不要什么都一个人做,一个人大包大揽

要寻求分工,要学会拿来主义
要懂得交换,要走向现代
在分工的基础,进行有效合作

吃饭到饭店去
洗衣拿到洗衣店去
想吃包子到包子铺去
想吃饺子到饺子馆去

你只需干一件事,那就是:十年一剑,达于十步一杀然后你就可以下山了
任它山下天宽地阔
亦可求仁得仁

一个人一辈子
只需身负一技,技冠群雄
即可有饭吃,有衣穿,仗剑走天涯


【3】工厂化:工厂设计模式


每一人只做一件事
其它的事情,都分包出去
这就是分工合作

分工合作的目的
是达到专业化和现代化
专业化和现代化有几个重要指标:
专职化、标准化、效率化

工厂模式,是实现分工
达到专业化和现代化的一个典型方案

分工解藕,达到规模化和效率化



(三)仰面天空:依赖倒转原则
(DIP,Dependence Inversion Principle)

【1】面向抽象


【2】面向接口


【3】依赖倒转


(四)不要和陌生人说话:迪米特法则
(Law of Demeter)












发表于 2019-4-8 22:17:04 | 显示全部楼层
很强大的,写来辽阔。运用了许多专业术语,写来构建严谨,读出很广的知识面。
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

闽公网安备 35020302001206号

[中国诗人论坛] ( 豫ICP备11003363号-2

GMT+8, 2024-4-25 12:41 , Processed in 1.274678 second(s), 10 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2011 Comsenz Inc.

返回顶部