您的位置:首页 > 其它

天天学设计模式1--重新认识面向对象

2015-09-16 23:10 183 查看
本人新手,发博客纯属为了,鼓励自己监督自己,如果有错误还请指正,虽然我认为没什么人会看啦


好了!开更!(我是按大话设计模式一章节一章节看过来)

接触充满代码的世界算下来差不多快有一年了,几个主流语言都有涉猎,写代码也能实现些零零碎碎的功能,但总觉得自己离独立完成一个项目却如此的遥遥无期,总觉得缺少东西将所有的功能联系起来,而且写出来的代码效率总是很低。无意中知道了设计模式这个东西,随便下了个pdf,看完了第一章便觉得这肯定是我想找的东西,虽然语风轻快但上来便剑指根基上的问题,面向对象的特点是什么?这几个特点对于我们的意义到底是什么?

每一本介绍C++,C#或者java的入门书籍都会说面向对象的三个特点,封装,继承和多态性。但由于一般都是先学C再学C++。所以,难免逃离不了C那种在一个文件里面将所有的功能从头写到尾的习惯。但这种习惯对于写一个应用程序来说很难对代码进行修改。比如,要在游戏里实现在不同条件下播放动画,实现这个功能后的某一天,制作这个游戏的游戏引擎更新了,显示动画的代码改变了,那么要从一大段代码中找出什么是显示的代码什么是游戏逻辑的代码吗?如果找漏了呢?

但如果写代码的时候不是写了整整一大段程序,而是写成了两个类,一个是在游戏界面中显示动画的类,一个是判断游戏逻辑里是否到了显示动画的时间的类,那么当游戏引擎有改动时,直接去找显示动画的类,会不会方便很多呢?所以要将实现和逻辑分为两个类来封装。

说好了,封装,那么接下来就是多态和继承。还是刚刚在不同条件下播放不同动画的例子,假设需要新添加一个条件,当满足这个条件时,播放新的动画,那么在原来的代码中要添加这个新的条件是不是很麻烦呢?(假设原本是用判断来实现播放不同的动画)首先要找出有多少地方需要添加这个条件,然后一个个改过去。而且还不安全,如果这是个结算工资的程序,那工资的判断条件,原本的那些是不能改的,要怎么新加呢?其实用继承就能很好地解决这个问题,为这些条件每一个都创建一个类,并且都继承自同一个类,类里定义一个可以标识不同条件的属性和一个虚方法,然后在这些条件类中重写这个虚方法,让显示层显示相应的动画。然后写一个判断的类,根据传进来的值不同创建不同的类(个人感觉,主要是为了需要保护的数据以及会被常常使用的判断才需要这么写,一半情况还是直接写一个判断就可以了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  设计模式