【设计模式之装饰者模式InJava】

需求:定义一个操作系统OS接口,安装Windows10操作系统,在上面安装虚拟机VMWare,虚拟机里装Linux;

   然后在Linux中安装虚拟机VMware,再在虚拟机里安装MacOS操作系统。

实现:

1. 定义一个接口OS:

package DecoratorMode;

public interface OS {
public void start();
}

2. Windows10操作系统:

package DecoratorMode;

public class WindowsOS implements OS {

    public void start() {
System.out.println("windows10 启动.....");
} }

3. Linux操作系统:

package DecoratorMode;

public class LinuxOS implements OS {
private OS os;//被装饰者
public LinuxOS(){
}
public LinuxOS(OS os){
this.os = os;
}
public void start() {
os.start();
System.out.println("Windows 的 VMWare 启动.....");
System.out.println("Linux 启动.....");
}
}

4. Mac OS操作系统:

package DecoratorMode;

public class MacOS implements OS{
private OS os;
public MacOS(){
}
public MacOS(OS os){
this.os = os;
}
public void start() {
os.start();
System.out.println("Linux 的 VMWare 启动.....");
System.out.println("Mac OS 启动.....");
}
}

5. 最后,在main函数中调用:

package DecoratorMode;

public class DecoratorDemo {

    public static void main(String[] args) {
OS osWin = new WindowsOS();
osWin.start();
System.out.println("----------------------------------"); OS osLinux = new LinuxOS(osWin);
osLinux.start();
System.out.println("----------------------------------"); OS osMac = new MacOS(osLinux);
osMac.start();
}
}

效果:

windows10 启动.....
----------------------------------
windows10 启动.....
Windows 的 VMWare 启动.....
Linux 启动.....
----------------------------------
windows10 启动.....
Windows 的 VMWare 启动.....
Linux 启动.....
Linux 的 VMWare 启动.....
Mac OS 启动.....

上一篇:winform程序一启动抛出异常--调用目标发生异常


下一篇:Python基础二. 数据结构、控制流、运算符、真值测试