十大Java核心概念

Java是最古老的编程语言,其适用性在不断增长。 无论您如何旋转, Java仍然提供灵活性,可伸缩性,并继续为世界上一些最复杂的计算系统提供支持

有些人试图在Java的基础上,尝试为某些用例(例如android开发)创建替代方案(例如Scala和Kotlin)。 但是,古老的巨人并没有退缩的迹象,幸运的是,如果您与Java成为友好的伙伴,那么它就是一个相当温柔的巨人。 怎么样? 通过了解语法的熟练程度和精通的衬衫并不是成为Java优秀开发人员所需的唯一条件。

学习Java的核心OOP原理与成为一名优秀的Java开发人员之间有很大的区别。 首先是任何可以访问Internet的人都可以在很短的时间内拥有的东西。 第二是经验的积累,再加上对设计原理和约定的牢固把握,这些原理和约定使有效的应用程序和代码更易于维护。

请注意,以下一些概念不仅与Java有关,而且与大多数面向对象的语言有关。

如果您是Java的新手,那么对Java最重要的核心概念(通常是OOP)的简短介绍可以作为通往更高效,更有效编码的秘诀 。 如果您是一位经验丰富的高级开发人员,那么此十大核心Java软件设计概念的集合将很好地提醒您要记住的重要内容

1. 干与抽象

我只写一次:重复无效。 DRY原理不仅对Java,OOP甚至编程均有效, DRY原理仅意味着“不要重复自己”。 详细地说,它被表述为“每条知识在系统中必须具有单一,明确,权威的表示形式。”

您可能知道,Java的主要优势之一是它在重用代码和资源方面的效率,而该原则只是反映这一点的众多原则之一。 您可以通过使用抽象 (OOP的四个核心原则之一)来避免重复。

在Java中,这意味着使用接口和抽象类可以做的事不仅仅可以节省击键。 除了帮助避免重复之外,抽象 旨在“隐藏”内部实施细节。 这种合并使得代码更易于阅读和维护。

2. 多态性

重用和效率的另一个OOP原则是多态性 ,它支持使用公共接口而不是具体的实现 。 正如多态性从字面上意味着具有多种形式的事物一样,它允许将单个公共接口用于一般的动作类。 使用通用接口可以轻松,快速地集成新需求或功能,而无需在整个代码库中进行手动更改。

在Java中,多态性是通过方法重载方法重写实现的 。 当同一类中存在具有相同名称的各种方法时,将发生方法重载。 各种方法虽然名称相同,但根据其参数的数量,顺序和类型来区分。 当子类覆盖其父类的方法时,将发生方法覆盖。

3. 封装

保护代码存储在类中的字段中的数据不受系统范围的访问,这与编码效率同样重要。 这是通过封装实现的- 封装是类本身内部的数据和代码的虚拟封装

在Java中,可以通过以下方式实现封装:默认情况下将类变量和方法保持私有,并通过公共getter和setter方法提供对它们的访问。 完全封装的类的一个示例是Java Beans

此外,封装还具有简化代码的测试和维护的额外好处,并且几种Java设计模式都可以有效地利用它。

4. 委托

如果您曾经有一群朋友帮助您搬家,您将充分理解委派的重要性。 您根本无法独自完成所有事情,因此,您可以–委托。

我们不会进入委托与继承之间的辩论,也不会决定哪个更好。 话虽这么说, 委托是一种集中了方法行为的抽象机制 ,类似于通过对象组合手动完成的继承。

本质上, 委托设计模式允许委托者对象将任务卸载到帮助者对象。 此原则的常见实现是在事件委托中,将事件发送到处理程序。

委托作为设计原则的主要优点是减少了代码重复,并且比继承更容易修改行为。

委托示例

5. 编程到接口,而不是实现

这个简单的句子是Erich Gamma在90年代初在“ 设计模式:可重用的面向对象软件的元素” (也称为GoF –四人帮)中提出的,它是OOP总体上和Java中最重要的设计概念之一。特别是。 这是您应该在代码中应用的一种。

对接口进行编程是一种基于定义对象行为的接口编写类的方法。 最初,似乎需要做更多的工作,因为您首先要创建一个接口,然后定义其方法,然后再使用实现编写实际的类。

但是,在Java中使用变量的接口类型,方法的返回类型或方法的参数类型使灵活的代码也更易于测试。

我们列表中的最后五个是SOLID原则。 它们最初是由Robert C. Martin在他的2000年论文《 设计原理和设计模式》中概念化的,后来由Michael Feathers进行了增强,后者还向我们介绍了SOLID的首字母缩写。

SOLID原则背后的主要目标是创建易于理解和维护的代码,即使您的应用程序规模和范围不断扩大,其复杂性也会降低

6. 单一责任原则

单一责任原则 (SRP)规定, 一个班级仅应承担一项责任,并且只有一个改变的原因

这是完全有道理的(因此几乎不需要解释),因为在单个类中发生更改的多种原因会影响输出和功能,并使您的代码变得难以维护。

7. 开闭原则

尽管这个名称听起来很矛盾(如何同时打开和关闭某个东西?),但实际上非常简单且合乎逻辑。 该原则指出, 实体或对象应保持打开状态以进行扩展,而保持闭合状态以进行修改

在Java中,这意味着应该对类,方法或函数进行开放,以增加功能,但对更改先前测试过的功能代码不开放。 当然,除非有人发现它不如经过测试和正常运行,并且需要修复错误。

8.里斯科夫替代原则

芭芭拉·里斯科夫(Barbara Liskov)在1980年代后期提出的“ 里斯科夫替代原则(LSP)”也许是我们名单中最难解释的一项。 可能是因为其定义非常数学化,有些混乱。

令Φ(x)是关于类型T的对象x的一个可证明性质。那么对于类型S的对象y,其中S是T的子类型,则Φ(y)应该为true。

当翻译成普通英语时,该原则建议, 作为父类(子类)的子类的任何类都可以代替其父类(超类)使用,而不会发生任何意外行为 。 因此,子类的重写方法必须能够接受与超类方法相同的输入参数值。

我个人认为,实际上最好是由以下模因解释:

9. 接口隔离原理

根据接口隔离原则(ISP), 不应强迫客户端实施它将无法使用的接口 。 换句话说,应将较大的接口拆分为较小的接口,以确保实现类仅“关心”相关方法。

尽管起初听起来像是要进行更多的编码工作,但它实际上是有效的,因为它可以减少依赖关系的复杂性,因为它可以防止客户端依赖实际不需要的某些东西。

10. 依赖倒置原则

依赖倒置 (DIP)原理指出, 高级模块不应依赖于低级模块,而应两者都依赖于抽象 。 另外, 抽象不应该依赖细节,而是细节应该依赖抽象

遵循此原则时,高级模块将保持独立于低级模块的实现细节。

干净,高效和可维护的代码并不难编写,通常值得付出努力。 不仅因为应用经过测试的软件设计模式使您可以更轻松地增强和开发应用程序,还因为有一天其他人可能不得不这么做。 而且,您永远都不知道对编码实践的挫败会带走他们多远。


取得Codota


From: https://blog.codota.com/top-10-core-java-concepts/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值