设计模式迷分两种:一种是好迷; 一种是坏迷. 好迷是指纯粹出于善意的 迹,坏迷是指利用设计模式的名声在公司中坑蒙拐骗的人.
君子不器讲的就是后一种人: 器是这种人的手段. 再说一次, 这种人是团队的毒药, 人民的公敌, 社会的渣宰.
首先, 设计模式是围绕着机器转的. 它的存在是为了解决机器的问题, 或者说至少它是从机器出发来解决问题的. 其实所有的模式都有一个共同点那就是它们都是一定语义的实现. 但是这种语义非常低, 仍然停留在语言层次的对象. 它并不是升华到真正的语义层次来解决问题的. 也就是说, 利用它实现的对象, 一是贴住机器的, 二是没有 真正的用途.二是因为一, 你本来就不是为了用途而生, 所以当然也就没有 "用"了. 顶多只能作为底层编程人员用来码"砖"的工具而已, 对于真正的面向对象设计没有 任何用途, 于真正的 面向对象开发就更别提了, 距离太远.
美国跟欧洲每年都围着面向对象开一次会. 会议参加者有开发者, 学界, 爱好人士等各种流派, 会议内容则开发, 设计, 编程等都有. 面向对象在国外是一个理想, 是程序界的共同理想. 年年开会是因为这东西很难研究, 以至于弄了几十年仍然没有 什么进展. 我是搞哲学的 ,不然我也不会碰这个东西. 这东西就不是搞计算机的纯理科头脑或者说书呆子们能碰的. 你碰一万年也没有 用. 因为你自己的模式不对.
话说回来, 人家那么多, 高手如林, 年年开会, 然后这边中国OS不会人帮, DBMS不会做, 什么都不会做, 然后却有一大堆面向 对象的精英, 开口闭口UML, 开口闭口设计模式. 误人不浅! 不揭露这批人的真面目, 于中国的软件技术发展绝对是一大障碍.
年年开会的目的: 努力实现面向对象的理想, 就象大家都知道上帝是好的, 所以年年要讨论一下. 虽然不知道他为什么好, 但是知道他是好的. 包括技术界, 花尽一切努力, 竭尽全力, 都一直不过想提升编程语言的语义. 只不过方式不对而已. 但是人家的方向是对的. 人家从来不崇拜设计模式, 人家是利用设计模式.
再说了, 为什么设计模式这么难学? 就因为它没有用, 没有 直接的用途. 有两种编程哲学: 人+语言; 程序. 本执第一种编程哲学的 人,显然要它没用, 他们直接用语言. 他们也会有库, 但是功能库. 所谓对象对他们来说也都只是些功能对象, 所以设计莫式在那里没有 用武之地. 第二种哲学,才是真正的面向对象的编程哲学. 然而设计模式在这里面也没有 用,为什么呢?因为它语义层次不够. 它仍然是围着机器转的, 用不"上".
编程的最终目的都是向"上"的. JAVA, ANDROID, 费用一切努力, 就是 为了提供一个尽量高的 语义环境. 结合这 个,设计模式要想用起来, 必须把它"编程环境化", 也就是说, 它不再是一种技巧, 而是一种服务, 像EJB一样, 像ACTIVITY一样. 语义化. 但是跟着来的另一个问题暴露了它的不足: 在一个这样的环境中, 它有什么用? 它有多少用? ...它其实还是有用的, 只是真是冰山一角, 面向对象编程范畴太大,大到无边无际, 这种太"器"的手段在里面根本就是 九牛一毛, 一定要说它有用, 那也就是个"毛"用.
炫奇: 我看到网上有人写了个大话设计模式, 有意思吗? 蠢得要死! 其实设计模式虽然语义层次很低, 但是其语义本身还是非常清晰的, 根本就不需要你东拼西凑地 深入浅出地介绍. 它的语义就在它的名字里面. 语义有两个方向: 纵向与横向. 这个虽然只是个非常粗的划分, 但却非常有用. 你也可以对它作个网络划分, 像大哲学家蒯因所说, 编织一张"意念之网", 但我不建议那么做, 因为你会把自己丢在里面, 再说你也不是搞哲学的 , 你受不了的所以算了. 纵向与横向指, 语义有高低之分, 有内涵之分. 内涵指区别性的语义, 高低指抽象层次不一样.
比如动物, 人, 坏人. 是不是?
这个其实也是在做面向对象设计的时候要非常注意的一件事, 你的语义必须最终"钉"在某一个层次上, 钉在某一个被限定的内涵上, "专业"的话语说是高内聚低耦合, 我也是严重反对这么做. 我反对任何的, 围在机器层次上, 使用机器"语言"来讨论语义层的问题. 我建议从语义层下手,解决语义层的问题. 不入虎穴, 焉得虎子. 有些人没能力没胆量, 就只能围着机器转安慰自己忽悠别人这些都是坏人这里不说了.
软件的最终目的在于价值. 而面向对象表现出能提供实现这个的手段的希望, 这是为什么人家每年都开会的原因. 人家希望使用面向对象去解决问题, 而不是像你这样只是想学个东西打发面试官, 打发面试者, 打发老板打发员工打发客户, 还打发自己.
面向对象不是炫奇. 以前清朝官员跑到巴黎去看人家的 工业博览会说人家炫奇, 那个是真错误. 因为工业品自然是有它价值的, 只是你没有意识到而已. 但是设计模式本身是不具有价值的, UML是不 具有价值的. 它们顶多对在面向对象语言中实现面向对象的理想提供了一点点可能会有的帮助, 但也是说不清摸不着的帮助, 不然美欧的那些会议早就可以停了.
我是向上走的 人.面对挑战的人. 是真正(会)去打仗的人. 是"忠"臣. 那些缩在家里面, 不知道怎么打也不敢去打的人, 他们干什么你们知道吗? 他们抱着经纶, 苦读诗书, 因为"书"山有路勤为径. 而"书"是大众认知, 所以成为他们利用, 忽悠大众的最佳工具 .这些人, 是奸臣. 你读书如果不是为了报国, 那就必将成为 奸臣,是
PS:
这段时间我为什么老喜欢提坏 人,坏程序员呢? 因为我越来越意识到, 社会是个大杂烩, 里面什么人都有. 而社会之所以是今天这个样子, 因 为好人也因为坏人. 是好人与坏人的共同作用, 才造就了今天的社会. 但是这是历史, 如果考虑未来的话, 显然, 好人越多一点,社会就会越美好一点. 比如殖民时代欧洲国家一开始只知道抢, 后来知道贸易, 再后来知道投资, 是不 是 ? 世界就是这样开始变美好的.
古希腊也是这样, 因为有民主, 因为有好人, 所以才有那光辉的文明. 古中国也是, 因为有民主, 有好人, 所以才有文明.
愿好人更多一点. 好程序员更多一点. 愿程序员拥有一片更纯净的天空.
机器
竭尽全力
包装 编程环境
一年一度
道德 炫奇会
基础?
价值