50,526
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void main(String[] args) {
// 测试一下
HouseOwner houseOwner = new HouseOwner();
houseOwner.decorate(new TuWorker());
houseOwner.decorate(new DainWorker());
houseOwner.decorate(new MuWorker());
houseOwner.decorate(new YouWorker());
// 程序执行结果:
// 我是土工,负责砌墙,贴瓷砖
// 我电工,负责埋电线和水管
// 我是木工,负责做家具
// 我是油漆工,负责粉刷
}
}
class People {
// 身份证号,姓名,电话,性别
String id;
String name;
String Tel;
String sex;
// 无参构造
public People() {
super();
}
// 有参构造,不提供get和set方法了
public People(String id, String name, String tel, String sex) {
super();
this.id = id;
this.name = name;
Tel = tel;
this.sex = sex;
}
}
interface Decorator {
void doWork();
}
class Worker extends People implements Decorator {
double price;
String certificate;
String company;
public Worker() {
super();
}
public Worker(double price, String certificate, String company) {
super();
this.price = price;
this.certificate = certificate;
this.company = company;
}
@Override
public void doWork() {
// TODO Auto-generated method stub
}
}
// 土工
class TuWorker extends Worker implements Decorator {
@Override
public void doWork() {
// TODO Auto-generated method stub
System.out.println("我是土工,负责砌墙,贴瓷砖");
}
}
// 电工
class DainWorker extends Worker implements Decorator {
@Override
public void doWork() {
// TODO Auto-generated method stub
System.out.println("我电工,负责埋电线和水管");
}
}
// 木工
class MuWorker extends Worker implements Decorator {
@Override
public void doWork() {
// TODO Auto-generated method stub
System.out.println("我是木工,负责做家具");
}
}
// 油漆工
class YouWorker extends Worker implements Decorator {
@Override
public void doWork() {
// TODO Auto-generated method stub
System.out.println("我是油漆工,负责粉刷");
}
}
// 房东
class HouseOwner extends People {
String addr;
double decorateFund;
public HouseOwner() {
super();
}
public HouseOwner(String addr, double decorateFund) {
super();
this.addr = addr;
this.decorateFund = decorateFund;
}
public void decorate(Worker worker) {
worker.doWork();
}
}