首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

Java IOC设计形式

2012-08-15 
Java IOC设计模式?Java IOC设计模式public?class?Button?{????private?Lamp?lamp????public?void?push()?

Java IOC设计模式

?

Java IOC设计模式public?class?Button?{?
Java IOC设计形式
Java IOC设计形式???private?Lamp?lamp;?
Java IOC设计形式
Java IOC设计形式???public?void?push()?{?
Java IOC设计形式
Java IOC设计形式???????lamp.turnOn();?
Java IOC设计形式
Java IOC设计形式???}?
Java IOC设计形式
Java IOC设计形式}?
Java IOC设计形式
???但是马上发现这个设计的问题,Button类直接依赖于Lamp类,这个依赖关系意味着当Lamp类修改时,Button类会受到影响。此外,想重用Button类来控制类似与Lamp的(比如同样具有turnOn功能的Computer)另外一个对象则是不可能的。即Button控制Lamp,并且只能控制Lamp。显然违反了“高层模块不应该依赖于低层模块,两者都应该依赖于抽象;抽象不应该依赖于具体实现,细节应该依赖于抽象” 这一原则(DIP原则)。考虑到上述问题,自然的想到应该抽象出一个接口SwitchableDevice,来消除Button对Lamp的依赖,于是设计如下:?

Java IOC设计形式public?class?Button?{?
Java IOC设计形式
Java IOC设计形式???private?SwitchableDevice?lamp;?
Java IOC设计形式
Java IOC设计形式???public?Button(){?
Java IOC设计形式
Java IOC设计形式???lamp=?new?Lamp();?
Java IOC设计形式
Java IOC设计形式???}?
Java IOC设计形式
Java IOC设计形式}?

热点排行