最近做一個小程序,一個類A(負責顯示處理)需要大量調用類B(負責數據處理)的函數,我最先想到的C++中的友元概念,因為類B中的這些函數並不希望public,它只是允許類A調用監測.
網上搜索了一下,沒有好的簡單實現,但是我想到了自己以前經常寫的一種方式,那不就是最簡單的實現嗎?
public class B { int ma; int mb; void fa(); void fb(); public class A { B b; public A(B bx) { this.b = bx; } void ff() { int ma = b.ma; int mb = b.mb; b.fa(); b.fb(); } } }
只需要把類A的定義放在類B的實現之中,這個時候類A就可以訪問類B的所有方法和數據量.而且這種方式也容易理解,那就是A要么是B的組成部分之一,A要么是B的寄生部分.只有B存在,A才有存在的意義.