java类方法不可见_使java方法仅对特定类可见
我有一個(gè)經(jīng)理類負(fù)責(zé)管理某種對(duì)象.要做到這一點(diǎn),它需要操縱這些對(duì)象,但這些對(duì)象與管理器無(wú)關(guān),所以從技術(shù)上講,它們位于單獨(dú)的包“project.managers”和“project.objects”中.重要的是,有問(wèn)題的對(duì)象只能由管理者操縱,而不是其他任何地方,但需要項(xiàng)目中的其他每個(gè)類都可以訪問(wèn).
因此,我希望管理員可以訪問(wèn)操作方法,但限制對(duì)其他所有類的訪問(wèn).最明顯的一種方法是將管理器類和對(duì)象類移動(dòng)到同一個(gè)包中并聲明受保護(hù)的操作方法,但由于管理器和對(duì)象是完全獨(dú)立的實(shí)體,因此它們不符合哲學(xué).
(這部分是因?yàn)槲蚁M业腎DE在我自動(dòng)完成有問(wèn)題的對(duì)象上的代碼時(shí)停止向我顯示操作方法所以我總是必須通過(guò)管理器的路徑,以便每當(dāng)我更改有問(wèn)題的對(duì)象時(shí)相應(yīng)的表都會(huì)正確更新) .
有什么想法,或者在任何情況下最明顯的方式是最好的嗎?
解決方法:
為什么沒(méi)有調(diào)用接口
ManagerFunctions
和另一個(gè)叫
ClientFunctions
您管理的對(duì)象將實(shí)現(xiàn)這兩??個(gè).
創(chuàng)建托管對(duì)象時(shí),可以傳遞它們,但僅作為對(duì)ClientFunctions的引用.但是,管理器對(duì)象將它們稱為ManagerFunctions,因此可以訪問(wèn)它們的“托管”功能.適當(dāng)?shù)蔫T造將簡(jiǎn)單地暴露適當(dāng)?shù)姆椒?
您的IDE將根據(jù)引用這些對(duì)象的方式自動(dòng)顯示相應(yīng)的方法.
標(biāo)簽:java,package,theory,access-specifier
來(lái)源: https://codeday.me/bug/20190625/1287355.html
總結(jié)
以上是生活随笔為你收集整理的java类方法不可见_使java方法仅对特定类可见的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 饥荒福特羊在哪里
- 下一篇: kafkatool 配置_kafka t