论坛首页 Java企业应用论坛

谈谈什么是好的抽象好的设计

浏览 12119 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-10-16   最后修改:2011-10-16
我们以前常听到比如你的设计不OO,不什么什么之类的调子,我现在仔细想来觉得这是多么荒唐的评价标准。
设计的好坏一个很重要的依据应该是:对于系统稳定和易变部分的切割,寻找你的稳定部分,隔离出易变的部分,而这个是否做对会在未来得到验证。至于最后我是用对象还是函数来抽象完全以这个为准绳。
很多人说OO更接近现实,模拟现实什么的,其实现实很复杂,很杂乱,要你程序员干吗?就是要简化的,你一一对应的建对象还叫设计吗?所以用某一种编程方法来评价设计是可笑的。真正考验你的是你是否找到了你所面临的问题空间中稳定的部分了,然后切割出易变的部分。而如果若干年后你稳定的部分一直屹立不倒,你给出的弹性的部分已经生长出繁荣的生态,那么你就是做出了好的设计。
   发表时间:2011-10-16  
稳定的部分屹立不倒,扩展的部分繁荣演进。
这体现了设计者的远见,抽象上的正确性,了解了他面对的问题中的核心所在。
0 请登录后投票
   发表时间:2011-10-16  
carlkkx 写道
我们以前常听到比如你的设计不OO,不什么什么之类的调子,我现在仔细想来觉得这是多么荒唐的评价标准。
设计的好坏一个很重要的依据应该是:对于系统稳定和易变部分的切割,寻找你的稳定部分,隔离出易变的部分,而这个是否做对会在未来得到验证。至于最后我是用对象还是函数来抽象完全以这个为准绳。
很多人说OO更接近现实,模拟现实什么的,其实现实很复杂,很杂乱,要你程序员干吗?就是要简化的,你一一对应的建对象还叫设计吗?所以用某一种编程方法来评价设计是可笑的。真正考验你的是你是否找到了你所面临的问题空间中稳定的部分了,然后切割出易变的部分。而如果若干年后你稳定的部分一直屹立不倒,你给出的弹性的部分已经生长出繁荣的生态,那么你就是做出了好的设计。



A、能赢的篮球球员-》B、命中率高的篮球球员-》C、姿势符合标准(前人经验)的篮球球员

如果说OO是C层次的话,lz则是倒退回了B层次了,那lz有什么惊天动地的发现,总结一个新的C层次(可操作的),来击败OO?
0 请登录后投票
   发表时间:2011-10-16  
gtssgtss 写道
carlkkx 写道
我们以前常听到比如你的设计不OO,不什么什么之类的调子,我现在仔细想来觉得这是多么荒唐的评价标准。
设计的好坏一个很重要的依据应该是:对于系统稳定和易变部分的切割,寻找你的稳定部分,隔离出易变的部分,而这个是否做对会在未来得到验证。至于最后我是用对象还是函数来抽象完全以这个为准绳。
很多人说OO更接近现实,模拟现实什么的,其实现实很复杂,很杂乱,要你程序员干吗?就是要简化的,你一一对应的建对象还叫设计吗?所以用某一种编程方法来评价设计是可笑的。真正考验你的是你是否找到了你所面临的问题空间中稳定的部分了,然后切割出易变的部分。而如果若干年后你稳定的部分一直屹立不倒,你给出的弹性的部分已经生长出繁荣的生态,那么你就是做出了好的设计。



A、能赢的篮球球员-》B、命中率高的篮球球员-》C、姿势符合标准(前人经验)的篮球球员

如果说OO是C层次的话,lz则是倒退回了B层次了,那lz有什么惊天动地的发现,总结一个新的C层次(可操作的),来击败OO?

我觉得你没看懂我说的,OO也罢,过程式也罢,函数式也好,都不是评价设计好坏的标准,这些是抽象的手段,但是好的设计取决于设计者对问题的正确认识以及采用适用的抽象手段,最后能够做到:稳定的部分屹立不倒,扩展的部分繁荣演进。
0 请登录后投票
   发表时间:2011-10-16  
不要拘泥于任何抽象手段的束缚。
0 请登录后投票
   发表时间:2011-10-16  
的确不必拘泥

要好的设计谁都知道

OO也罢,过程式也罢,函数式也好,都不是评价设计好坏的标准

它们都是方法,但是,在没有提出新方法的前提下,是不是只能用旧的方法来判断呢?

不然的话,做了个既不OO,也不过程式,又不函数式的设计,也很容易是一个好的设计?

期待lz推出惊天动地的新方法,不然还得按其中之一来评价
0 请登录后投票
   发表时间:2011-10-16  
gtssgtss 写道
的确不必拘泥

要好的设计谁都知道

OO也罢,过程式也罢,函数式也好,都不是评价设计好坏的标准

它们都是方法,但是,在没有提出新方法的前提下,是不是只能用旧的方法来判断呢?

不然的话,做了个既不OO,也不过程式,又不函数式的设计,也很容易是一个好的设计?

期待lz推出惊天动地的新方法,不然还得按其中之一来评价


我已经把评价标准说了:稳定的部分屹立不倒,扩展的部分繁荣演进。
这是结果评价法而不是使用什么方法去评价。
0 请登录后投票
   发表时间:2011-10-16  
不知道lz有没有听过直升飞机和微软的笑话
0 请登录后投票
   发表时间:2011-10-16  
看来我要多说两句。
能达到 稳定的部分屹立不倒,扩展的部分繁荣演进。 关键在于设计者抽象上的正确性,这更多取决于设计者对于问题核心认知以及抽象方法的灵活运用。而非死扣OO还是函数这些。如果一个行为具有通用性那么它就更适合被抽象为函数而非对象。
0 请登录后投票
   发表时间:2011-10-16   最后修改:2011-10-16
支持楼主!
c++的gp就是明显超越oo的设计。

oo只是一种设计思想,如果所有的思路都局限在oo上,就是形式主义。

我想说,有的人手里有把锤子,就把所谓的问题看成钉子,这是非常愚蠢的。

楼主是个有想法的人,祝你能够有所突破!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics