zoukankan      html  css  js  c++  java
  • 处理问题的方法--抽象和特例化

       事实上我们在软件开发的过程中总是:遇到问题,解决问题,这么一个 简单的过程。处理一般类似问题的时候,我们经过抽象,有的提取算法,有的提取结构,有的提取流程等等,这样的过程可以简单理解为就是抽象。然而问题是多种多样的,我们不可能碰到的都是相同的问题,所以不可避免的我们会面临特殊情况,相对的就有新的算法,新的结构,新的流程。这就是特例化。

       如果仅仅是一个简单的问题,那么一层的抽象大概够用了。问题总是复杂的,有的时候用这样的算法,有的时候用那样的算法,有的时候有不同的结构,有的时候又有不同的流程,不可避免,我们的聪明人又做了一次抽象,抽象处理这些问题的方法,这就是泛型、面向对象、设计模式。恩、实际上你明白了,哲学离我们一点儿也不远,我们都有成为哲学家的潜质。

      下面我们开始新的胡思乱想:

      1、老海的问题。 他nnd,编程语言越来越多,老子以后为微软写底层编译器会活活累死。于是,.Net诞生了。恩,老海是个灰常合格的哲学家。

      2、贝尔实验室内的困惑。 我们已经重写操作系统了,那个老小子,怎么又进来了?几十年后某人阴笑~~谁叫你们用的都是偶的编译器。

      3、 ... 以上与程序相关,以下你可以认为无关。

      通过以上我们可以看出,凡是事务都存在两个方面,相似的一方面,相对的一方面。对于相似性的处理一般采用抽象的方法,对于相对性的处理,一般采用特例化的方法。相对性因为相对论的广泛影响,已经广为人知。相似性的普及还有待提高。我这里指的相似性,不仅仅是大家看到的作为归类的相似性,也包括不同领域间的相似性。套用相对论的词语,可以用狭义相似性,和广义相似性来区别对待。 相似性存在于方方面面,比如不同物体的组成元素构成类似、原子的结构和星系的类似、历史事件的类似、文化本质的类似等等。从某个角度说,分析相似性是一种思维的方法,可以提高各个领域研发人员的创新能力。 我也希望,我的思考,可以带给你更多的思考。 转载请注明出处,谢谢。

  • 相关阅读:
    Spring框架的反序列化远程代码执行漏洞分析(转)
    JVM调优总结(转)
    创造与熟练与微创造
    一次 react-router 中遇到的小坑
    mac中强大的快捷键
    数组思维 -- join的一些用法感悟
    undefined null 与 字符串相加
    mobx中的数组需要注意的地方
    更换鼠标垫(鼠标)的心路历程
    Object.defineProperty 中的 writable 和 configurable 和 enumerable 的理解
  • 原文地址:https://www.cnblogs.com/qiezi/p/1899735.html
Copyright © 2011-2022 走看看