接口,规范,解耦合 代码如下: package com.iceheart.action; interface SwitchableDevice{//具有开关的相关设备 boolean isOn(); void change(); } class Light implements SwitchableDevice{ private boolean state = true; public void show(){ if(state){ System.out.println("灯开着"); }else{ System.out.println("灯关着"); } } public boolean isOn(){ return state; } public void change(){ state = !state; } } class Switch{//开关类,用来与相关的特定开关设备关联,从而控制该设备 private SwitchableDevice sd ; //字段是接口类型,那么只要是实现了SwitchableDevice接口的设备都可以使用这个开关 //而不仅仅是上面的Light类,从而实现了松耦合 public Switch(SwitchableDevice sd){//构造函数,接受一个具体的设备,从而把设备和开关关联起来 this.sd = sd; } public void on(){ if(sd.isOn())return; sd.change(); } } public class InterfaceTest { public static void main(String[] args) { Light light = new Light(); Switch s = new Switch(light); s.on(); light.show(); } }