1. 依赖倒转原则:抽象不应该依赖细节,细节应该依赖抽象
/**
* 信息接口
*/
interface IReceive {
public String getInfo();
}
/**
* 微信信息实现类
*/
class WeiXin implements IReceive {
@Override
public String getInfo() {
return "微信消息: hello word !";
}
}
/**
* 电子邮件实现类
*/
class Email implements IReceive {
@Override
public String getInfo() {
return "电子邮件: hello word !";
}
}
/**
* 客户端实体类
*/
class Persion {
public void receive(IReceive iReceive) {
System.out.println(iReceive.getInfo());
}
}
public static void main(String[] args) {
Persion persion = new Persion();
persion.receive(new WeiXin()); // 微信消息: hello word !
persion.receive(new Email()); // 电子邮件: hello word !
}
解析:以接收信息的方式为例,通常方法是微信消息编写一个微信的类,Email消息编写Email类,如果新增一种消息类别,就需要新增一个类,方式太多容易造成类爆炸,因此我们使用依赖倒转原则:编写一个名为IReceive的消息接口,让各种消息方式去实现它,即可实现依赖倒转原则;
注意事项:
- 变量的申明类型最好是抽象类或接口,这样我们在变量的引用和实际对象间就有一个缓冲层,方便程序的扩展和优化;