分享
[中心名称]-[班级号]-[学员姓名]-“开-闭”原则.ppt
下载文档

ID:3422187

大小:734.50KB

页数:12页

格式:PPT

时间:2024-04-29

收藏 分享赚钱
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
中心名称 班级号 学员姓名 中心 名称 班级 学员 姓名 原则
在线培训:面向对象设计,第七章,目标,掌握面向对象设计原则之开闭原则,概述,面向对象设计原则在使用面向对象思想进行系统设计时,总结出了若干面向对象设计原则,分别是单一职责原则开闭原则里氏代换原则依赖注入原则接口分离原则迪米特原则组合/聚合复用原则这些原则是面向对象设计的基石,坚持这些原则是提升面向对象设计质量的重要保障,开闭原则,定义:OCP:Open for extention,Closed for modification Principle,即对扩展开放,对修改关闭原则该原则的思想是:可以通过扩展来满足变化,而不需要修改代码,或者说在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展,开闭原则,举例:(原有设计),class Salary/工资类public void computerSalary()System.out.println(采用工资算法一计算工资);class Accountant/会计类public void ComputerSalary(Salary salary)puterSalary();class TestOCP/测试类public static void main(String args)Accountant accountant=new Accountant();accountant.ComputerSalary(new Salary();,需求发生变化,按照工资算法二计算工资,如何实现呢,开闭原则,举例:(不能很好的适应需求变化),class Salary/工资类public void computerSalary()System.out.println(“采用工资算法二计算工资);class Accountant/会计类public void ComputerSalary(Salary salary)puterSalary();class TestOCP/测试类public static void main(String args)Accountant accountant=new Accountant();accountant.ComputerSalary(new Salary();,通过修改Salary类的computerSalary()来实现,不利于程序的稳定,开闭原则,举例:(重新设计),interface Salary/工资接口public void computerSalary();class BeijingSalary implements Salary/北京工资实现类public void computerSalary()System.out.println(采用工资算法一计算工资);class Accountant/会计类public void ComputerSalary(Salary salary)puterSalary();class TestOCP/测试类public static void main(String args)Accountant accountant=new Accountant();accountant.ComputerSalary(new BeijingSalary();,创建工资接口,并提供实现类,开闭原则,举例:(很好的适应需求变化),interface Salary/工资接口public void computerSalary();class HebeiSalary implements Salary/河北工资实现类public void computerSalary()System.out.println(“采用工资算法二计算工资);class Accountant/会计类public void ComputerSalary(Salary salary)puterSalary();class TestOCP/测试类public static void main(String args)Accountant accountant=new Accountant();accountant.ComputerSalary(new HebeiSalary();,增加Salary接口的新实现,而不是修改原有类,开闭原则,实现:实现开闭原则的关键是抽象定义一个抽象层,只规定功能而不提供实现,实现通过定义具体类来完成当需求变化时,不是通过修改抽象层来完成,而是通过定义抽象层的新实现完成,即通过扩展来完成通过抽象类及接口,规定了具体类的特征作为抽象层,相对稳定,不需修改,从而满足“对修改关闭”从抽象类导出的具体类可以改变系统的行为,从而满足“对扩展开放”,开闭原则,好处:通过扩展已有软件系统,可提供新的行为,以满足对软件的新需求,提高了软件系统的适应性和灵活性已有的软件模块,特别是最重要的抽象层模块不能再修改,提高了软件系统的一定的稳定性和延续性这样的设计同时也满足了可复用性与可维护性;,开闭原则,总结:实现开闭原则的关键是抽象抽象层相对稳定,不需修改,需求变化后通过重新定义抽象层的新实现来完成即使无法百分之百的做到开闭原则,但朝这个方向努力,可以显著改善一个系统的结构对系统每个部分都肆意地进行抽象也不是一个好主意,应该仅仅对程序中需求频繁变化部分进行抽象拒绝不成熟的抽象和抽象本身一样重要,

此文档下载收益归作者所有

下载文档
猜你喜欢
你可能关注的文档
收起
展开