Refinement精化

在STL中,有这样几个名词,一个叫 Concept ,可以翻译成为“概念”,比如Container(容器)就是一个Concept,表达任何可以作为元素存储机制的抽象,Iterator(迭代器)也是一个概念,表达任何可对容器进行迭代操作的抽象。还有一个名词,叫Model,可以翻译成为“模塑”,指将某种Concept用实体来构造出来,比如实现某种Container的实体;另外重要的一个名词就是所谓的Refinement,可以翻译成为“精化”,指在更精细的刻画某个概念模塑体,增强它的特征。STL相当的复杂。但是我觉得这三个名词,之间循序渐进的发展,紧密连接在STL框架中,构成了STL坚实的基础。就此点设计原则上看,是相当的简洁,但是深刻。概念-模塑-精化,这样的扩展体系的思路,我觉得相当值得借鉴。
        我碰到不少的软件工程师,在他们的分析和设计中,我发现一个较为普遍的情况,即对问题的认识和解决上缺乏足够细腻的层次,这在一开始看,由于很快的面对问题进行解决,解决问题的速度相当的快,但是由于对问题的认识上层次过于单薄,在问题发生变化的时候,他先前的解决方案就不奏效了或者需要大改动了。最主要的原因是对问题的本质缺乏系统的观察分析,只见树木不见森林。
        遵循“ 概念-模塑-精化”这样的思路,能够有效的避免这样的问题。概念技能是对软件设计人员的基本也是很重要的要求。分离概念和实现是很重要的一个原则。GOF Design Patterns在写作中也是遵循类似的思路,相当有意思的是,我觉得“接口和实现分离”其实也是体现了同一个原则,接口是作为表达概念的强有力的工具在GOF Design Patterns 中存在的。
        再讲到精化。在模式社区,我们能够发现许多新的模式,它们中的许多都是建立在GOF Design Pattern的基础上,对其进行了进一步的更贴切更具体问题的扩展或者变种,从更宽泛的意义上看,我觉得可以将此看作是对GOF Design Patterns的Refinement。
        以基本的模式为基础,通过精化,产生了一系列基于某一概念的很多的精化模型,从而产生了模式群集,或曰模式簇。
        按照这样的观点,我们将能够发现对于不断涌现的更多的模式,我们能够较为容易的学习和使用它们。系统论的普遍联系的观点也于此凸现。将概念放在有更好的组织纹理的宏观情景(Context)下看待比简单的无联系的学习单个概念,会容易很多。
         但是这样的普遍联系不是混乱的胡乱联系,而是按照抽象程度的不同细腻分层的进行组织。掌握了最抽象的概念将能够让我们提纲挈领,下降到群集中的精化体,将能够让我们更好的使用概念实体化后带来的好处。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值