iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Java中怎么避免反模式
  • 263
分享到

Java中怎么避免反模式

2023-06-17 05:06:10 263人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关Java中怎么避免反模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用接口,如:12345package one;public interface

本篇文章给大家分享的是有关Java中怎么避免反模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

使用接口,如:

1

2

3

4

5

package one;

public interface Constants {

String NAME="name1";

int MAX_VAL=25;

}

1

2

3

4

5

package two;

public class Constants {

public static final String NAME="name1";

public static final int MAX_VAL=25;

}

我的观点是使用接口。因为接口会自动将成员变量设置为静态的(static)、不可变的(final),这一点可以防止某些情况下错误地添加新的常量。这也使得代码看起来更简单和清晰。

同时,一个的简单测试显示,同样的接口(字节码文件)占用的空间是209个字节(ubuntu  14.04机器上),而类(字节码文件)占用的空间是366个字节(同样的操作系统)。更少的字节码文件意味着加载和维护的成本更低。此外,JVM  加载接口的时候,不需要担心类提供的额外特征(如重载、方法的动态绑定等),因此加载更快。

这看起来非常好,但是这是一个典型反模式的例子。虽然使用接口来保存常量看起很有帮助,但是这给应用后期的扩展留下一个漏洞。

假设存在在一个类,紧密】依赖于这些常量。开发者在该类中写满了通过接口对常量的引用。如:

1

packagename.Constant.CONSTANT_NAME

所以,为了“清理”这段代码,他可能想实现该接口,这样他就不需要到处写“packagename.Constants”,所有的常量可以直接访问。

但是,一旦他实现了该接口,所有的常量就都变成“契约”(因为所有的常量都是公共的、静态的)的一部分。这导致为这个类增加了不必要的常量。这会动摇整个基础,并引起混乱。Java 中没有一种方式可以阻止类实现接口。

而另一种方式,我们可以将类设置为final,这样就不能扩展。甚至,我们可以将构造器设置为私有的,以防止对这个类实例化,这样就永远不会破坏约定。此外,如果一个特殊的常量在同一个类中被多次使用,则开发者可以使用静态引入。

所有对于常量类,比较好的设计应该是:

1

2

3

4

5

6

7

package three;

//make the class non-extendable by adding final 增加final关键字来避免继承

public final class Constants {

//Hide the constructor 隐藏构造器

private Constants(){}

public static String NAME="name";

}

静态引入的例子:

1

2

3

4

5

6

import static three.Constants.NAME;

public class UseConstants {

  public static void main(String[] args) {

      System.out.println("the value of constants is"+NAME);

  }

}

以上就是Java中怎么避免反模式,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: Java中怎么避免反模式

本文链接: https://www.lsjlt.com/news/287348.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java中怎么避免反模式
    本篇文章给大家分享的是有关Java中怎么避免反模式,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用接口,如:12345package one;public interface...
    99+
    2023-06-17
  • Java中怎么避免OOM
    Java中怎么避免OOM,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一.了解 强引用、软引用、弱引用、虚引用的概念在Java中,虽然不需要程序员手动去管理对象...
    99+
    2023-06-17
  • mongodb避免的查询模式
    1少用countdb.testcol1.find({xxx:15}).count() 2 避免large-skipdb.testcol1.find({xxx:15}).skip(100000).l...
    99+
    2024-04-02
  • Java中怎么避免sql注入
    小编给大家分享一下Java中怎么避免sql注入,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获...
    99+
    2023-06-26
  • 怎么在Java中避免死锁
    这篇文章给大家介绍怎么在Java中避免死锁,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面向对象理论,允许程序员以优雅的思维...
    99+
    2023-06-14
  • 怎么避免java死锁
    这篇文章主要介绍“怎么避免java死锁”,在日常操作中,相信很多人在怎么避免java死锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么避免java死锁”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!来到...
    99+
    2023-06-16
  • java中怎么避免程序死锁
    本篇文章为大家展示了java中怎么避免程序死锁,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  死锁发生的条件  互斥,共享资源只能被一个线程占用  占有且等待,线程 t1 已经取得共享资源 s1,...
    99+
    2023-06-02
  • Java项目中怎么避免循环依赖
    本篇文章给大家分享的是有关Java项目中怎么避免循环依赖,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。举个例子:图中我们的API 库导入了一些库,但这些库同时依赖了库X的不同版...
    99+
    2023-06-15
  • java怎么避免空指针异常
    在Java中,可以通过以下方法避免空指针异常:1. 对于可能为null的对象进行null检查。在使用可能为null的对象之前,先要进...
    99+
    2023-08-19
    java
  • Java中模板模式怎么用
    小编给大家分享一下Java中模板模式怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!优点封装不变部分,扩展可变部分。提取公共代码,便于维护。行为由父类控制,子类实现。缺点每一个不同的实现都需要一个子类来实现,导致类的个...
    99+
    2023-06-29
  • Java中避免写嵌套if样式的代码详解
    前言Optional的代码相对更加简洁,当代码量较大时,我们很容易忘记进行null判定,但是使用Optional类则会避免这类问题。下面这是一个嵌套的 if 判断,业务逻辑是从 httpRequst 中获取 X-Auth-Token 的值。...
    99+
    2023-05-31
    java if嵌套 ava
  • 免实名服务器怎么避免拒绝式攻击
    免实名服务器避免拒绝式攻击的方法:1、购置防火墙,限定路由器最大尺寸,阻断ICMP及任何未知的协议;2、如果更新服务器数据,要根据数据库的形态,在防火墙做出特殊的访问限定;3、关闭不必要的服务或端口,阻止临时大流量的访问;4、设置一台机器不...
    99+
    2024-04-02
  • Java反射的陷阱:避免常见的错误和误解
    Java反射允许开发人员在运行时检查和修改类、方法和字段。这在许多情况下非常有用,例如,它允许开发人员创建自定义序列化器或解析器,或者在运行时动态加载类。 然而,Java反射也可能给开发人员带来麻烦。以下是一些常见的陷阱: 性能问题:...
    99+
    2024-02-08
    Java 反射 陷阱 错误 误解
  • 如何在Java中避免出现NullPointerException
    今天就跟大家聊聊有关如何在Java中避免出现NullPointerException,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java中避免NullPointerExceptio...
    99+
    2023-05-31
    java nullpointerexception ava
  • 避免在Java中使用Checked Exception(转)
    避免在Java中使用Checked Exception(转)[@more@]这篇文章指出了Java中checked Exception的一些缺点,提出应该在程序设计中避免使用checked Exception,对于需要处理checked E...
    99+
    2023-06-03
  • java多线程怎么避免重复数据
    在Java多线程编程中,避免重复数据的方法主要有以下几种: 使用锁机制:在访问共享数据时,使用锁来保证同一时间只有一个线程能够访...
    99+
    2024-02-29
    java
  • Java怎么有效避免SQL注入漏洞
    这篇文章主要介绍“Java怎么有效避免SQL注入漏洞”,在日常操作中,相信很多人在Java怎么有效避免SQL注入漏洞问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java怎么有效避免SQL注入漏洞”的疑惑有所...
    99+
    2023-06-22
  • 租用免备案空间怎么避免拒绝式攻击
    租用免备案空间避免拒绝式攻击的方法:1、购置防火墙,限定路由器最大尺寸,阻断ICMP及任何未知的协议;2、如果更新空间数据,要根据数据库的形态,在防火墙做出特殊的访问限定;3、关闭不必要的服务或端口,阻止临时大流量的访问;4、设置一台机器不...
    99+
    2024-04-02
  • DDD中怎么避免过度设计
    这篇文章主要介绍了DDD中怎么避免过度设计,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。DDD即领域驱动设计,是一种建模方法论,强调通过分析...
    99+
    2024-04-02
  • 怎么在python中避免KeyError异常
    这篇文章将为大家详细讲解有关怎么在python中避免KeyError异常,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python可以做什么Python是一种编程语言,内置了许多有效的工具,...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作