静态代理模拟实现 模拟软件开发过程
/**
* 软件开发
*/
public interface SoftwareDesigning {
/**
* 设计
*/
public void designing();
/**
* 开发
*/
public void developing();
/**
* 测试
*/
public void testing();
}
/**
* 开发人员
*/
class Developer implements SoftwareDesigning{
/**
* 设计
*/
@Override
public void designing() {
}
/**
* 开发
*/
@Override
public void developing() {
System.out.println("开发开始");
System.out.println("开发结束");
}
/**
* 测试
*/
@Override
public void testing() {
}
}
/**
* 设计人员
*/
class Designer implements SoftwareDesigning{
/**
* 设计
*/
@Override
public void designing() {
System.out.println("设计开始");
System.out.println("设计结束");
}
/**
* 开发
*/
@Override
public void developing() {
}
/**
* 测试
*/
@Override
public void testing() {
}
}
class Tester implements SoftwareDesigning{
/**
* 设计
*/
@Override
public void designing() {
}
/**
* 开发
*/
@Override
public void developing() {
}
/**
* 测试
*/
@Override
public void testing() {
System.out.println("测试开始");
System.out.println("测试结束");
}
}
/**
* 软件公司
*/
class SaftwareHouse implements SoftwareDesigning
{
/**
* 设计人员
*/
private Designer designer;
/**
* 开发人员
*/
private Developer developer;
/**
* 测试人员
*/
private Tester tester;
public SaftwareHouse(Designer designer, Developer developer, Tester tester) {
this.designer = designer;
this.developer = developer;
this.tester = tester;
}
public SaftwareHouse() {
}
@Override
public void designing() {
designer.designing();
}
@Override
public void developing() {
developer.developing();
}
@Override
public void testing() {
tester.testing();
}
/**
* 静态代理模拟
* @param args
*/
public static void main(String[] args) {
//创建一个软件公司
SaftwareHouse softwareDesigning = new SaftwareHouse(new Designer(),new Developer(),new Tester());
//调用设计方法
softwareDesigning.designing();
//调用开发方法
softwareDesigning.developing();
//调用测试方法
softwareDesigning.testing();
}
}
运行结果