我有一个经理类负责管理某种对象.要做到这一点,它需要操纵这些对象,但这些对象与管理器无关,所以从技术上讲,它们位于单独的包“project.managers”和“project.objects”中.重要的是,有问题的对象只能由管理者操纵,而不是其他任何地方,但需要项目中的其他每个类都可以访问.

因此,我希望管理员可以访问操作方法,但限制对其他所有类的访问.最明显的一种方法是将管理器类和对象类移动到同一个包中并声明受保护的操作方法,但由于管理器和对象是完全独立的实体,因此它们不符合哲学.

(这部分是因为我希望我的IDE在我自动完成有问题的对象上的代码时停止向我显示操作方法所以我总是必须通过管理器的路径,以便每当我更改有问题的对象时相应的表都会正确更新) .

有什么想法,或者在任何情况下最明显的方式是最好的吗?

解决方法:

为什么没有调用接口

ManagerFunctions

和另一个叫

ClientFunctions

您管理的对象将实现这两​​个.

创建托管对象时,可以传递它们,但仅作为对ClientFunctions的引用.但是,管理器对象将它们称为ManagerFunctions,因此可以访问它们的“托管”功能.适当的铸造将简单地暴露适当的方法.

您的IDE将根据引用这些对象的方式自动显示相应的方法.

标签:java,package,theory,access-specifier

来源: https://codeday.me/bug/20190625/1287355.html

java类方法不可见_使java方法仅对特定类可见相关推荐

  1. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  2. java 返回值判断_在Java中判断方法重载的条件除了参数外,还可以通过返回值类型判断。_学小易找答案...

    [单选题]若int x;且有下面的程序片断,则输出结果是() . for (x=3; x<6; x++) { printf((x%2) ? "##%d" : "** ...

  3. JAVA解决实例问题_解决java方法

    没有R.java问题找不到getActionBar()方法 android项目,可是项目中没有重要的R.java,并且报错,说是找不到getActionBar()方法,上网寻找原因,终于寻得解决方法: ...

  4. java 插入 mysql 乱码_解决java中插入mysql中文乱码的方法

    解决java中插入mysql中文乱码的方法 发布时间:2020-07-11 14:35:11 来源:亿速云 阅读:100 作者:清晨 这篇文章主要介绍解决java中插入mysql中文乱码的方法,文中介 ...

  5. java编程代码大全_掌握Java编程技巧,代码重构

    代码重构在不改变软件系统外部行为的前提下,改善它的内部结构,通过调整程序代码改善软件的质量.性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性. 代码重构目标 持续纠偏和改进软件设计 随 ...

  6. java 版本查看命令_查看Java版本命令如何查看?Java常用命令详解

    现在程序员开发项目都在使用工具,很多人可能都忘记了Java自带命令,下面就让我来介绍些吧. 1.java.exe: 运行java程序,这个相信每一位用Java的人知道了. 2.javac.exe: 编 ...

  7. java compare 返回值_关于Java你不知道的那些事之Java8新特性[Lambda表达式和函数式接口]...

    前言 为什么要用Lambda表达式? Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,将代码像数据一样传递,这样可以写出更简洁.更灵活的代码,作为一个更紧凑的代码风 ...

  8. java是什么格式_是java格式

    错误:编码GBK的不可映射字符的解决办法 最近在重新补javaSE的基础,编辑器编写完代码以后,在控制台运行代码段的时候,出现了以下的错误提示:错误:编码GBK的不可映射字符 在通过查询谷哥和度娘以后 ...

  9. java 异常 最佳实践_处理Java异常的10种最佳实践

    java 异常 最佳实践 在本文中,我们将看到处理Java异常的最佳实践. 用Java处理异常不是一件容易的事,因为新手很难理解,甚至专业的开发人员也可能浪费时间讨论应该抛出或处理哪些Java异常. ...

最新文章

  1. GitHub告急!黑客威胁程序员不交钱就删库
  2. OGG 同步报错 - TCP/IP error 111 (Connection refused)
  3. oracle如何查看数据安全用户,oracle用户安全管理
  4. Design Pattern - State(C#)
  5. 马哥linux2020博客,马哥linux学习(bash shell学习)
  6. 物联网协议之CoAP协议开发学习笔记之术语解释
  7. Spring MVC中jsessionid所引起的问题 和解决
  8. gradle 的 依赖管理(八)
  9. Servlet学习一
  10. Android WatchDog正解
  11. kubernetes 简介:调度器和调度算法((Affinity/Anti-Affinity, Taints and Tolerations, 自定义调度器 )
  12. 【人脸识别】基于matlab GUI LBP人脸识别【含Matlab源码 1282期】
  13. 心电图分析软件_狼疮性心肌炎39例临床特点及预后分析
  14. 钽电容封装大全及技术参数
  15. 怎么完全卸载赛门铁克_赛门铁克(sep)卸载方法
  16. 深度学习实战8-生活照片转化漫画照片应用
  17. 查询表锁争用情况 table_locks_waited table_locks_immedaite
  18. 两种依赖注入的类型是什么?
  19. 设置360浏览器的背景为护眼模式(浅豆绿色)
  20. TensorFlow实现多层感知机

热门文章

  1. 强制ul中li不换行
  2. 【tensorflow-keras-GRU】keras.layers.GRU 门限循环单元网络(Gated Recurrent Unit)
  3. android dumpsys 分析,Android开发调试性能分析工具:dumpsys
  4. linux统计日志,Linux一些常使用的统计日志 方法
  5. mysql 小类型_mysql 数据类型
  6. 初学Ajax相关知识
  7. C++项目參考解答:求Fibonacci数列
  8. 《实施Cisco统一通信管理器(CIPT2)》一1.2 概述部署多站点环境时将会遇到的挑战...
  9. 转载 linux内核 asmlinkage宏
  10. Keeplived配置Nginx双机高可用【转】