打字猴:1.700471584e+09
1700471584 设计模式之禅 [:1700454037]
1700471585 25.1 员工的隐私何在
1700471586
1700471587 我们在前面讲过了组合模式和迭代器模式。通过组合模式能够把一个公司的人员组织机构树搭建起来,给管理带来非常大的便利,通过迭代器模式把每一个员工都遍历一遍,看看是不是“有人去世了还在领退休金”,“拿高工资而不干活的尸位素餐”等情况,我们今天要做的就是把这些情况统计成一个报表呈报上去,让领导看看这种恶劣的情况有多严重。
1700471588
1700471589 我们公司有700名多技术人员,分布在全国各地,组织架构在组合模式中已经介绍过了,是很常见的家长领导型模式,每个技术人员的岗位都是固定的,你在组织机构的哪棵树下,充当的角色是什么,叶子节点都是非常明确的,每一个员工的信息(如名字、性别、薪水等)都是记录在数据库中,现在有这样一个需求,我要把公司中的所有人员信息都打印汇报上去。我们来看类图,如图25-1所示。
1700471590
1700471591
1700471592
1700471593
1700471594 图25-1 员工信息类图
1700471595
1700471596 这个类图还是比较简单的,我们定义每个员工都有薪水salary、名称name、性别sex这3个属性,然后提供了一个抽象方法getOtherInfo由子类进行扩展,同时通过report方法打印出每一个员工的信息,这里使用模板方法模式。我们先来看一下抽象类,如代码清单25-1所示。
1700471597
1700471598 代码清单25-1 抽象员工
1700471599
1700471600 public abstract class Employee{
1700471601
1700471602 public final static int MALE=0;//0代表是男性
1700471603
1700471604 public final static int FEMALE=1;//1代表是女性
1700471605
1700471606 //甭管是谁,都有工资
1700471607
1700471608 private String name;
1700471609
1700471610 //只要是员工那就有薪水
1700471611
1700471612 private int salary;
1700471613
1700471614 //性别很重要
1700471615
1700471616 private int sex;
1700471617
1700471618 //以下是简单的getter/setter
1700471619
1700471620 public String getName(){
1700471621
1700471622 return name;
1700471623
1700471624 }
1700471625
1700471626 public void setName(String name){
1700471627
1700471628 this.name=name;
1700471629
1700471630 }
1700471631
1700471632 public int getSalary(){
1700471633
[ 上一页 ]  [ :1.700471584e+09 ]  [ 下一页 ]