1700439313
编写高质量代码:改善Java程序的151个建议 建议14:使用序列化类的私有方法巧妙解决部分属性持久化问题
1700439314
1700439315
部分属性持久化问题看似很简单,只要把不需要持久化的属性加上瞬态关键字(transient关键字)即可。这是一种解决方案,但有时候行不通。例如一个计税系统和人力资源系统(HR系统)通过RMI(Remote Method Invocation,远程方法调用)对接,计税系统需要从HR系统获得人员的姓名和基本工资,以作为纳税的依据,而HR系统的工资分为两部分:基本工资和绩效工资,基本工资没什么秘密,根据工作岗位和年限自己都可以计算出来,但绩效工资却是保密的,不能泄露到外系统,很明显这是两个相互关联的类。先来看薪水类Salary类的代码:
1700439316
1700439317
public class Salary implements Serializable{
1700439318
1700439319
private static final long serialVersionUID=44663L;
1700439320
1700439321
//基本工资
1700439322
1700439323
private int basePay;
1700439324
1700439325
//绩效工资
1700439326
1700439327
private int bonus;
1700439328
1700439329
public Salary(int_basePay, int_bonus){
1700439330
1700439331
basePay=_basePay;
1700439332
1700439333
bonus=_bonus;
1700439334
1700439335
}
1700439336
1700439337
/*getter/setter方法省略*/
1700439338
1700439339
}
1700439340
1700439341
Peron类与Salary类是关联关系,代码如下:
1700439342
1700439343
public class Person implements Serializable{
1700439344
1700439345
private static final long serialVersionUID=60407L;
1700439346
1700439347
//姓名
1700439348
1700439349
private String name;
1700439350
1700439351
//薪水
1700439352
1700439353
private Salary salary;
1700439354
1700439355
public Person(String_name, Salary_salary){
1700439356
1700439357
name=_name;
1700439358
1700439359
salary=_salary;
1700439360
1700439361
}
[
上一页 ]
[ :1.700439312e+09 ]
[
下一页 ]