网站地图
  
  高级搜索
  首页   技术论坛   博客 派计划   产品中心   资源中心   银弹在线   商城  





开闭原则在SCA架构中的应用    
#1楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 152 分
财富 209 goCom币
威望 128
排名 :(
段位 新手必读

  开-闭”原则(Open-Closed Principle)是面向对象的可复用设计(Object Oriented Design或OOD)的基石。其他设计原则(里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则)是实现“开-闭”原则的手段和工具。

“开-闭”原则的定义

  定义:一个软件实体应当对扩展开放,对修改关闭。( Software entities should be open for extension,but closed for modification)。

  在设计一个软件系统模块的时候,应该使这个模块可以在不被修改的前提下被扩展,或者说,可以在不必修改原来代码的情况下改变这个模块的行为。

满足“开-闭”原则的系统的优点

1)通过扩展已有的软件系统,可以提供新的行为,以满足对软件的新需求,使变化中的软件系统有一定的适应性和灵活性。
2)已有的软件模块,特别是最重要的抽象层模块不能再修改,这就使变化中的软件系统有一定的稳定性和延续性。

  具有这样两个优点的系统是一个在高层次上实现了复用的系统,也是一个易于维护的系统。

“开-闭”原则的实现——抽象化

  面向对象编程语言可以使用抽象的方法,为系统定义一个不再更改的抽象设计来作为系统的抽象层。这个抽象层覆盖了所有未来可能扩展,因此在任何情况都不会改变。这样使系统的抽象层保持不变,从而满足了开闭原则的第二点:对修改关闭。

  由于从抽象层导出的一个或多个具体类可以改变系统的行为,因为系统的设计对扩展是开放的,从而满足了开闭原则的第一点:对扩展开放。

  在SCA框架中,无论在commonj还是SPI;无论是composite还是component,都可以看到开闭原则的应用。

 

Re: 开闭原则在SCA架构中的应用    
#2楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 38 分
财富 35 goCom币
威望 122
排名 :(
段位 新手必读
这里我有一个问题
面向接口编程主要是为了开闭原则
定义一个接口 然后一个实现类a

一段时间后,需要添加新功能,然后我们为接口添加功能,使用一个新的实现类b来实现接口功能
这里,接口增加了功能,所以原来的实现类a必须得实现该接口,所以必须得修改实现类a
这个好象有点不对吧。。。 我有点弄迷糊了
 

Re: 开闭原则在SCA架构中的应用    
#3楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
总分 7739 分
财富 6596 goCom币
威望 8229
排名 第 2 名
段位 新手必读
怎么下边没有了?哈哈

以为有具体的分析
2007/11/3 12:42


-----------------------------------------------------------
走别人的路,让自己说去吧!
-----------------------------------------------------------

SOA中国关键任务广受认可    SOA博客精英 万元奖金现已发送    IDC白皮书《软件商成长路线图》    软件开发2.0技术大会
Primeton BPS 频道火热上线    goCom积分调整    派计划:专业、权威、影响力    goCom户外:烧烤+游戏
 

Re: 开闭原则在SCA架构中的应用    
#4楼
给作者发送短消息 给作者发送短消息  
查看用户其他信息
总分 11 分
财富 14 goCom币
威望 1
排名 :(
段位 新手必读
 

Re: 开闭原则在SCA架构中的应用    
#5楼
给作者发送短消息 给作者发送短消息 实名会员 
查看用户其他信息
初级会员

"这个抽象层覆盖了所有未来可能扩展,因此在任何情况都不会改变。"这个前提有点大吧,这其实也是gougou8180所提问题的症结所在。

 




发表回复
账号用户名   密码   登录
内容:url email imgsrc image code quote
范例 Example
bold italic underline linethrough   


 [更多...]