client/server 沟通的最佳实践 Android
Best practice for client/server communication Android
在启动 activity 时,我创建并调用了一个线程:
new Thread (new Connect()).start();
Thread t = new Thread() {
@Override
public void run() {
try {
//check if connected!
while (!Connect.logged) {//logged is boolean
Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
在 class Connect(实现 Runnable)中,我创建并打开了一个套接字。除了方法 运行,我还有方法 sendMessage(String) 和 receiveMessage(),它们使用 BufferOutputStream 和 BufferInputStream 与服务器通信。
现在,我需要发送和接收来自其他活动的消息。将这些方法设为静态是好习惯吗?
所以我可以调用它们,例如 Connect.sendMessage("OK");
在 Java
中使方法静态化的规则
没有硬性规定,写得很好的规则来决定何时将方法设为静态或不,但是很少有基于经验的观察,这不仅有助于将方法设为静态,而且还教导何时将方法设为静态在 Java 中使用静态方法。您应该考虑在 Java 中使方法静态化:
1) 如果一个方法不修改对象的状态,或者不使用任何实例变量。
2) 您想在不创建该 class 实例的情况下调用方法。
3) 如果一个方法只对提供给它的参数起作用,那么它是静态的很好的候选者,例如public int factorial(int number){},此方法仅对作为参数提供的数字进行操作。
4) 实用方法也是静态的很好的候选者,例如StringUtils.isEmpty(String text),这是一个检查字符串是否为空的实用方法。
5) 如果方法的功能在 class 层次结构中保持静态,例如equals() 方法不是制作静态的好候选者,因为每个 Class 都可以重新定义相等性。
阅读更多:http://javarevisited.blogspot.com/2013/07/when-to-make-method-static-in-java.html#ixzz48L2fehQq
在启动 activity 时,我创建并调用了一个线程:
new Thread (new Connect()).start();
Thread t = new Thread() {
@Override
public void run() {
try {
//check if connected!
while (!Connect.logged) {//logged is boolean
Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
t.start();
在 class Connect(实现 Runnable)中,我创建并打开了一个套接字。除了方法 运行,我还有方法 sendMessage(String) 和 receiveMessage(),它们使用 BufferOutputStream 和 BufferInputStream 与服务器通信。
现在,我需要发送和接收来自其他活动的消息。将这些方法设为静态是好习惯吗?
所以我可以调用它们,例如 Connect.sendMessage("OK");
在 Java
中使方法静态化的规则没有硬性规定,写得很好的规则来决定何时将方法设为静态或不,但是很少有基于经验的观察,这不仅有助于将方法设为静态,而且还教导何时将方法设为静态在 Java 中使用静态方法。您应该考虑在 Java 中使方法静态化:
1) 如果一个方法不修改对象的状态,或者不使用任何实例变量。
2) 您想在不创建该 class 实例的情况下调用方法。
3) 如果一个方法只对提供给它的参数起作用,那么它是静态的很好的候选者,例如public int factorial(int number){},此方法仅对作为参数提供的数字进行操作。
4) 实用方法也是静态的很好的候选者,例如StringUtils.isEmpty(String text),这是一个检查字符串是否为空的实用方法。
5) 如果方法的功能在 class 层次结构中保持静态,例如equals() 方法不是制作静态的好候选者,因为每个 Class 都可以重新定义相等性。
阅读更多:http://javarevisited.blogspot.com/2013/07/when-to-make-method-static-in-java.html#ixzz48L2fehQq