参数化设计

参数化设计与面向对象的结合---元素化编程方法的诞生

好久不见. 提交于 2019-12-01 20:38:38
面向对象的最终目的仍然是功能。面向对象只是作为一种灵活性更强的构建手段存在于需求分析与设计领域的。 那么,到底要如何在对象的基础上实现功能的灵活更变即系统的灵活性就成了一个避免不了的问题。 答案就是参数化。 在网上稍作搜罗之后发现,没有任何与软件设计相关的参数化方案。所有的参数化方案或讨论都是集中于建筑或三维建模上面的。 这是另一个鸿沟。 为什么呢?因为我如果构建一个游戏系统,没有参数化的方案的话,很多东西就将全被HARDCODED。但是HARDCODING显然与软件本身的进化性质是不相符合的。姑且不讨论软件的自治进化能力,即使是人工进化能力,在HARDCODING的情况下也是不可能的。 这不是鸿沟是什么?进化显然是软件本身的一种属性,但是在一个没有参数化的系统中,进化没有办法通过一种结构化的手段进行表达而只能通过全面推翻的方法达到目的,显然不是一种真正的进化。因为真正的进化具有两种形式:突变与选择。 而对于一个并不具有群体特征的事物如“软件”来说,“选择”显然是在讨论范围以外的东西。至少在现阶段,大部分的商业软件件开发并不是使用这种方法完成的。也许有些AI程序使用这种方法进行软件开发。但一旦把它放到应用级的软件范围中,组合爆炸的问题就开始浮现出来。所以它不可能。 因此个体软件的进化只能是突变。但是突变的发生要求软件必须具有一定的结构。因为突变意味着结构的突变。并不是整体的推翻