为何非得采用面向对象编程技术?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1626个文字,预计阅读时间需要7分钟。
前言:上文已完整,在上文第22楼virus的回复中,我发现上文中提出的最终解决方案还存在本质缺陷。再看到第24楼richardzeng的回复,我想起了rich的思路,确实应该像rich那样去做。
前言:本来上篇已经是完整篇,可在上篇第22楼virus的回复中,我发现了上篇文章中的最终解决方案还是存在着本质的缺陷。再看到第24楼richardzeng的回复,仔细想来,的确应该是像richardzeng的写法一样有更深一步的考虑,感谢两位的回复。我将补充方案的讲解加了进来,希望可以给大家以帮助。
接上篇 凭什么要用面向对象编程——面向对象重要设计原则概述
★2007-10-02 08:00 小菜在家中准备
小菜开始准备给人家讲座的内容,一开始都很顺利。可是当要把不同的验证方式给细化时,发现了问题。
24 原有的接口实现关系图
如果要再把是用户名密码验证,还是指纹验证的代码加进来,应该如何写具体的实现类呢?
25 SqlServer实现类改造
此时你会发现,如果要实现这个功能,你必须在你的每个实现类中写出上面的判断语句,如果某一天要增加一种数据访问(比如MySql)你就得再写一遍类似的代码,如果某天增加一个用户验证的方式(比如人脸识别验证),你就得改动所有的实现类的分支判断。这显然是让人难以接受的。
小菜决定换一种思路
26 多个类的多重继承
也就是把分支判断的语句,通过继承的方式给分解掉,这样每一种实现都体现成为一个类。只要有新的数据访问或者用户验证方式,不外乎就是增加类就可以了。应该是解决了问题。
可是,看着这张图,小菜感觉不到设计的美。如果,我们增加一种数据访问(如MySql),我们需要增加至少四个类。
本文共计1626个文字,预计阅读时间需要7分钟。
前言:上文已完整,在上文第22楼virus的回复中,我发现上文中提出的最终解决方案还存在本质缺陷。再看到第24楼richardzeng的回复,我想起了rich的思路,确实应该像rich那样去做。
前言:本来上篇已经是完整篇,可在上篇第22楼virus的回复中,我发现了上篇文章中的最终解决方案还是存在着本质的缺陷。再看到第24楼richardzeng的回复,仔细想来,的确应该是像richardzeng的写法一样有更深一步的考虑,感谢两位的回复。我将补充方案的讲解加了进来,希望可以给大家以帮助。
接上篇 凭什么要用面向对象编程——面向对象重要设计原则概述
★2007-10-02 08:00 小菜在家中准备
小菜开始准备给人家讲座的内容,一开始都很顺利。可是当要把不同的验证方式给细化时,发现了问题。
24 原有的接口实现关系图
如果要再把是用户名密码验证,还是指纹验证的代码加进来,应该如何写具体的实现类呢?
25 SqlServer实现类改造
此时你会发现,如果要实现这个功能,你必须在你的每个实现类中写出上面的判断语句,如果某一天要增加一种数据访问(比如MySql)你就得再写一遍类似的代码,如果某天增加一个用户验证的方式(比如人脸识别验证),你就得改动所有的实现类的分支判断。这显然是让人难以接受的。
小菜决定换一种思路
26 多个类的多重继承
也就是把分支判断的语句,通过继承的方式给分解掉,这样每一种实现都体现成为一个类。只要有新的数据访问或者用户验证方式,不外乎就是增加类就可以了。应该是解决了问题。
可是,看着这张图,小菜感觉不到设计的美。如果,我们增加一种数据访问(如MySql),我们需要增加至少四个类。

