C++ 发消息,内存文件映射,socket等方式
对象有其特有的私有空间,又可以跟其它对象通信。
Java程序就是建立一个个对象(类),然后由对象以及它们之间的通信来组织程序。
下面考虑对象之间的通信问题。
1、单向通信
对象b调用对象a,但是对象a不调用对象b,则通常有一下方法:
(1)在对象b中实例化一个类a。
public class ClassA -->建立单向关联关系
{...} // ClassA
public class ClassB // ClassB
{
// data
ClassB classA;
...
} // End of ClassB
(2)类方法或类变量 ----->建立依赖关系
public class ClassA // ClassA
{
// method
public static void method1()
{...}
} // End of ClassA
public class ClassB // ClassB
{
// method
oublic void method2
{
...
ClassA.method1();
}
} // End of ClassB
2、双向通信
(1)通过接口实现。
具体就不介绍了。上一篇学习笔记有例子。
(2)通过双向关系
3、通过超类来实现
本质上其实跟接口是一样的。
总之,要想双方实现双向通信,其实本质上都是一种:在其中的一个类中实例化另外一个类的同时,把自己的一个引用给对方。
就这样。
今天暂时思考到这里。
对象有其特有的私有空间,又可以跟其它对象通信。
Java程序就是建立一个个对象(类),然后由对象以及它们之间的通信来组织程序。
下面考虑对象之间的通信问题。
1、单向通信
对象b调用对象a,但是对象a不调用对象b,则通常有一下方法:
(1)在对象b中实例化一个类a。
public class ClassA -->建立单向关联关系
{...} // ClassA
public class ClassB // ClassB
{
// data
ClassB classA;
...
} // End of ClassB
(2)类方法或类变量 ----->建立依赖关系
public class ClassA // ClassA
{
// method
public static void method1()
{...}
} // End of ClassA
public class ClassB // ClassB
{
// method
oublic void method2
{
...
ClassA.method1();
}
} // End of ClassB
2、双向通信
(1)通过接口实现。
具体就不介绍了。上一篇学习笔记有例子。
(2)通过双向关系
3、通过超类来实现
本质上其实跟接口是一样的。
总之,要想双方实现双向通信,其实本质上都是一种:在其中的一个类中实例化另外一个类的同时,把自己的一个引用给对方。
就这样。
今天暂时思考到这里。