`
zhanghonglun
  • 浏览: 92230 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

伟大的抽象/具体二分法

阅读更多

面向对象设计中有一条原则叫做依赖倒置,意思就是要依赖抽象,而不是依赖具体。这让我联想到了"抽象/具体二分法"这个命题,当然我只能感慨,真TMD 伟大。

接口/实现是二分法的一种体现,这种做法已经为我们设计时解耦合做出了巨大的贡献。

当然,真正伟大的还是规范/实现这对玩意儿。

首先讲讲Java,

JVM 本身是一组规范(当然很多地方也用JVM 来表示JVM 的实现),而其实现有IBM JVM,SUN Hotspot JVM,Oracle JRocket 等。

J2EE 也是一组规范,其实现有IBM Websphere,Oracle Weblogic,Redhat Jboss... 想想Weblogic 和Jboss 当初都是SUN 公司里面一个跑出来一个大牛,搞出一个J2EE 实现,最终成就大业,如今SUN 已是昨日黄花,不禁唏嘘。当然我相信Java 是不会倒下的。

再说说我们的操作系统,

POSIX 标准簇应该如雷贯耳吧,UNIX 和各式Linux 都是它的实现。

还有我们的数据库,

SQL 规范应该也是如雷贯耳吧,其实现就不得了了,DB2,Oracle,MS SQL... ...

 

这本身还不足以让人感慨,最重要的是,上面讲了这么多的实现,如果大家不是遵循同样的规范,很难想象现在的世界是个什么样子,可能软件开发人员一半的时间都要去学工具了。而现在,相对来说,大家还是活的很惬意的,

  • 用Java 写出来的东西真的很容易移植
  • 掌握一种操作系统后,要转换一种系统,基本没什么障碍
  • 掌握一种数据库,要转换另外一种数据库,至少在开发层面上学习曲线还是可以接受的(管理就不一定了,哈哈)

这些为人类节省了多少的智力成本啊,伟大都不足以形容... ...哈哈

这个结论还有一个反例支持。那便是W3C 和浏览器的实现。想想多浏览器的支持曾经是多少人的噩梦,好在最近有了点转机。

顺便推荐下Chrome 浏览器,V2 正式版最近发布了,这玩意儿真的不错,一贯的简洁。还有些特性蛮有趣的,比如全屏浏览(F11),不妨试试。

  • 大小: 25.2 KB
分享到:
评论

相关推荐

    论文研究 - 回顾事实/价值二分法:一种言语行为法,旨在改善卫生技术评估中伦理学的整合

    跨学科技术评估涉及自然科学和哲学参考框架之间的正面讨论,通常会重现哲学领域争论的事实/价值二分法。 那么,对于哲学家来说,面临的挑战是解释事实/价值二分法是如何被哲学家批评的,以致于无法再解释“可验证...

    冒泡排序、快速排序和二分法查找的分析 Java

    二分法查找的具体代码实现较为简洁,但关键在于正确处理边界条件和更新查找范围。 总结来看,冒泡排序虽然实现简单,但效率较低,适用于数据量较小的情况;快速排序则是一种高效的排序算法,特别适合大数据量的排序...

    C/C++语言的二分法求方程的根

    二分法,也称为折半搜索法,是一种在数值计算中广泛应用的算法,尤其在寻找方程的实数根时非常有效。它基于连续函数在有限区间内的中间值定理,即如果一个连续函数在一个闭区间上既有正又有负的值,那么至少存在一个...

    二分法_二分法解方程_

    二分法,也称为折半搜索或二分搜索,是一种在有序数组中查找特定元素的搜索算法。这个方法的关键在于其高效性,每次查询都能将搜索区间减半,因此在大量数据中查找特定值时非常有效。二分法不仅用于查找,还可以应用...

    c语言二分法递归求解函数根

    二分法,也称为折半搜索,是一种在有序数组中查找特定元素的搜索算法。它通过不断将查找区间减半,快速定位目标值。在数值分析领域,二分法也被用于求解方程,特别是连续函数的零点。在本案例中,我们将探讨如何用...

    AS3基础算法源码

    //二分法 //algo.PushingMethod();//顺推 //algo.InverseMethod();//逆推 //algo.ExhaustiveMethod();//穷举 //algo.EnumerationMethod();//枚举 //algo.RecursiveMethod();//递归 //algo.DivideConquerMethod();//...

    数值分析二分法C程序

    在C++编程中,可以利用面向对象的特点,将二分法封装成一个类,包含成员函数来执行具体的算法操作,这样可以提高代码的复用性和可维护性。此外,标签中提到的"C++"意味着可以利用C++的STL库,例如`<cmath>`中的数学...

    二分法流程图1

    二分法流程图1 二分法是一种常用的数值计算方法,用于寻找单变量函数的零点。它的基本思想是通过不断地将搜索范围缩小,来逼近函数的零点。下面我们将通过流程图来详细地介绍二分法的工作过程。 首先,我们需要...

    二分法求函数零点

    通过本篇文章,我们详细介绍了如何使用二分法求解函数的零点,并提供了一个具体的C语言实现示例。这种方法不仅简单易懂,而且对于很多实际问题都非常有效。在实际应用中,还需要考虑更多细节,如异常处理、优化算法...

    Java中使用二分法排序

    具体代码: import java.util.Scanner; //二分法 public class SplitBy2Sort { public static int splitBy2(int[] a, int num) { int low = 0; int high = a.length – 1; int mid; while (true) { // 取...

    pt1000采用二分法查询温度表C代码实现.rar

    本项目中,我们关注的是如何利用C语言来实现一个二分法查询温度表的程序,这个程序可以帮助我们快速找到对应于特定电阻值的温度。 二分法,也称为折半查找,是一种在有序数组中查找特定元素的搜索算法。其基本思想...

    二分法解线性方程二分法解线性方程

    在提供的压缩文件"二分法__1"中,可能包含了更具体的二分法实现细节、代码示例或案例分析,帮助读者深入理解如何在编程环境中应用二分法来解线性方程或其他类型的问题。学习并掌握二分法不仅可以提升数值计算的能力...

    二分法排序算法 C语言实现

    根据给定的文件信息,我们可以总结出以下关于“二分法排序算法C语言实现”的相关知识点: ### 1. 二分法搜索算法原理 二分法搜索算法,也称为折半查找算法,是一种在有序数组中查找特定元素的搜索算法。其基本思想...

    二分法文献和程序

    二分法,也称为折半搜索或二分搜索,是一种在有序数组中查找特定元素的搜索算法。这个方法的核心思想是通过不断将搜索区间减半,来快速定位目标值的位置。二分法在信息技术、数据处理和算法设计等领域有着广泛的应用...

    温度转换二分法_二分法_温度二分法查表_40_

    标题中的“温度转换二分法”是指在处理温度测量时,采用二分法来查找温度对应的电压或电阻值。二分法,又称折半查找法,是一种高效的算法,常用于有序数据集合中寻找特定元素。在温度测量领域,如果我们有一个预设的...

    二分法的使用

    二分法的使用 二分法是一种常用的数值计算方法,用于找到函数的零点或极值。在计算机科学中,二分法是解决直际问题的重要工具。下面我们将详细介绍二分法的使用和实践。 二分法的定义 二分法是一种数值计算方法,...

    二分法matlab程序.zip_matlab DICHOTO_matlab 二分法_matlab二分法_二分法主程序

    二分法(dichotomie) 即一分为二的方法. 设[a,b]为R的闭区间. 逐次二分法就是造出如下的区间序列([an,bn]):a0=a,b0=b,且对任一自然数n,[an+1,bn+1]或者等于[an,cn],或者等于[cn,bn],其中cn表示[an,bn]的...

    三种二分法MATLAB程序

    MATLAB中的这些二分法程序展示了算法的灵活性和可扩展性,可以根据具体需求进行定制和优化。在使用时,用户需要根据问题的特点选择合适的版本,并注意设置适当的初始区间、精度要求和最大迭代次数。

    Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法

    Python编程语言提供了多种高效处理数据的方法,其中包括匿名函数、排序函数、过滤函数、映射函数以及递归和二分法。这些概念在处理各种数据结构时尤其有用。 首先,我们来了解一下**匿名函数**,也称为`lambda`函数...

    二分法 文件写入读出

    在Java编程语言中,二分法是一种高效的搜索技术,它基于分治策略,适用于已排序的数据集合。在处理大量数据时,二分法通常比线性搜索更快,因为它将问题分解为更小的部分来解决。这里我们将探讨如何利用二分法进行...

Global site tag (gtag.js) - Google Analytics