Java的8 LongAdders:正确的方法来管理并发计数器

接口是一个面向对象设计的核心设计理念。它们被用于多种原因,如使多个特定接口的实现。 在这个岗位上,我会潜入如何使用这些在Java 6和7,它们如何适用于cloudify,什么是Java 8的到来。

所以,只是对那些不熟悉的对象,在设计界面是一个合同,一个对象必须履行 。如果一个对象声明它实现的接口,那么它需要实现所有该接口中定义的方法。这使得开发商之间的分离的定义(即接口)对象及其实现。 通俗的说,如何分离。

例如,cloudify,在产品的核心,我们有云驱动它定义了如何分配资源,cloudify从选择的云。 明显,每个云有它自己的API,所以有多个云驱动接口的实现。 有一个基于JClouds多云,一个图书馆微软Azure,除了其他几个实现。 上面这些,用户也可以创建自己的云驱动的实现,使用Java和Groovy。

使用Java接口不过的事,就是一旦你定义它,用户已经开始使用它,改变它是非常困难的。 很困难,因为如果一个界面发生改变时,所有现有的实现方式以及必须改变,因为这会导致它们在编译期间或在破运行时。 与cloudify,用户可以创建自己的云驱动,并且有cloudify目前生产的多个版本,这是很棘手的。


你的应用程序在Java过渡从7到Java 8无缝cloudify云。    


现在添加到这一点,云的世界正在迅速改变这一事实。 是具有新功能的所有的时间,动态的世界,从新的云API,和新的存储,网络和计算的实现,通过新的功能被添加到现有的服务,定期。 能够不改变他们的这些服务与维护接口,已成为cloudify维护 挑战

以“面向未来”的云驱动接口,该cloudify 2.7队已决定从使用接口使用Java抽象类。通过使用一个抽象基类,cloudify可以添加新的方法声明为基地的界面,以及添加默认的实现。例如扔一个Java标准不支持错误的新方法。这种新方法将使我们能够添加新的方法,我们的“云驱动接口”而不破坏现有的云 司机

为保证向后兼容旧的云驱动接口仍然被支持,但新的云驱动功能将不会被添加到它,因此,我们希望这些被淘汰,最终。

使用基类定义了一个接口被认为是在面向对象设计中的不友好的,因为它迫使开发者扩展cloudify的基类,而不是自己定义实现继承自己 。这是由于在Java,一个类可以实现多个接口,但它只能扩展一个基类 。因此,本设计考虑 侵入。然而,为迅速改变云的景观,我们发现这是最好的选择。

输入Java 8。虽然它仍然没有被释放,Java 8计划包括:添加选项默认的方法对于一个接口的默认实现。 这将使你的接口添加方法包括默认的实现,从而实现类不会如果他们的接口与以前的版本编译的突破。

这意味着用户可以发布一个云驱动接口和方法添加到后来没有实现突破现有的云驱动编译或运行时要求。 这个问题的未来是Java接口兼容性选择添加此功能的原因。

 

现在,cloudify支持Java版本6和7。就是说,我们希望看到这个新的Java 8功能的默认方法整个Java社区变得非常有用。

 

 

本文由重庆上弦科技有限公司(翻译而来)

 

上弦科技官网   OA办公系统   免费微信公众平台

你可能感兴趣的:(java)