请简述面向对象设计的启发规则
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请简述面向对象设计的启发规则
在设计中,我们往往会根据自己已有的经验进行面向对象程序的编写。
但是实际上我们不知道为什么要这样做?我们可以怎样更好地改进面向对象设计呢?这个问题值得我们深入思考,也是我们本节课要解决的内容。
在开始之前,先给大家简单介绍一下面向对象程序设计的基本概念和几条设计规则。
1、主体是能被用户直接使用的工具,它对系统资源有使用权。
2、主体应该提供完成特定功能的信息,而不是说明完成某些特定功能所需要的过程和逻辑。
3、主体应该是对现实世界的抽象,而不是对人类经验的简单总结。
4、从属关系应该明确,如果两个主体间没有从属关系,那么从属关系就失去了意义。
5、复杂性应该控制在一定范围内。
6、如果存在可由子类扩充的方法,它也应该可以被子类继承。
7、通常情况下,应该为不同类型的方法分别提供相应的接口,方便它们互相调用。
8、面向对象的程序设计方法要求软件系统必须具备三个基本特性:封装性、继承性和多态性。
下面我们来看一个简单的例子,加深一下对这些概念的理解。
请读者帮助我们完善这个示例。
从上面的示例可以看出面向对象的程序设计方法适用于开发大规模软件系统,但是对于我们日常开发小规模程序来说还不够合适,所以我们在这里再来简化一下,并且通过进一步思考和分析,让学生自己来归纳和总结这些设计原则。
请同学们观察上面的例子,哪些符合了面向对象程序设计的启发规则?哪些又不符合?为什么?启发规则在各种各样的软件开发中都有存在,请大家想一想你在学习
软件工程的时候,是否也曾经犯过上面的错误呢?在以后的软件工程教学过程中,我们可以利用各种各样的事物作为载体,把这些启发规则作为设计的准则贯穿于整个软件开发的过程当中,让学生能够轻松地掌握这些原则,真正做到举一反三,触类旁通。
3、对象只需要在主体中出现一次,而不需要其它任何操作。
4、主体可以被组合和重用。
5、如果程序中需要用到类或抽象类的话,那么应该尽量不重复使用。
6、如果子类可以扩展父类的功能,那么应该尽量少的使用重复的功能。
7、使用继承性的目的是为了减少多态性带来的复杂性,尽量少使用继承性。
8、如果对象的信息和属性可以从其它对象继承过来,那么就可以不使用继承性。