文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>入门封装与抽象

入门封装与抽象

时间:2010-09-27  来源:demon天

从开始学习C# 到java 到后来又回归Asp.net(C#) 又误入VB以及VB.net后 又重回.Net!

  面向对象是个什么玩意,就一直没怎么清楚过! 要我解释我会解释,面向对象四大特征 “封装,继承,多态 ,抽象” 封装是为了减少代码的复写,继承是子类继承父类方法,具体父类的特性,多态是一种事物多种形态如 水,冰,蒸汽,抽象就是模糊!    其实以上都是在学校的时候背的!压根不知道啥玩意!随着写代码多了。    到今天,才渐渐的对封装和抽象,有了一点点认识!    先谈谈封装吧!在之前的帖子中,我有谈到过,做程序一开始就要思考好程序哪些方法可能要多次被利用到,需要用到的就可以封装成一个方法,这样调用起来方便,修改的时候也好控制,符合高内聚,低耦合的逻辑,之前有举例说登录,每一页都要写一个session的判断, 可以一开始就封装一个session的判断的方法,然后每一页复制同一句话,即使有一天不用session了,就只要在这个封装好的方法里面改一下就好了,这样所有的页面都改了!还有之前一再强调的打印,很多时候,都会用js去alert出一个值每次都会写到response.write("") 可以直接封装成showmesgbox方法,直接往里面传入参数然后打印这句话不是好些么?也许大家很早以前就已经想到了,可能我蠢一点吧,我在毕业之前都没有想过,我是练到了response·······这句话手写或者 用手倒着写都没问题,这不是厉害,这叫傻! 总结一点就是,在写程序之前就可考虑哪些东西会重复用到多次的,就一定要想好封装成方法!    封装就说到这里,毕竟封装是我们用的最多的,所以不需要过多的解释!然后相比之下继承和抽象是用的最少的,我今天谈一下抽象,但不是说的抽象类,抽象类的使用少只又少!但是面向对象是一种思想,思想不是工具更不是技术!是一种思维模式!简单的聊一下以抽象的思维模式去思考程序的设计!    为什么要抽象?抽象有什么好处?在学校时学校老大曾经举过这样一个例子--去买菜。   买菜少不了讨价还价,尤其是欧巴桑,按学校老大的原话形象的描述一下抽象和具体两种方式还价,A,具体:“老板你这菜5块钱太贵,可以少3块钱不咯!”  老板笑死,因为菜其实最低价只要1块钱,“好咯,好咯,少3块就3块,我吃点亏,下次还到我这来买咯,我便宜把你!” 其实究竟是谁吃亏呢? B,抽象(欧巴桑级别上阵):“老板你这菜5块钱太贵了,可以少点不咯”, 菜老板心理发毛:“那就给你少2块咯!”  “那不行,那还要再少一点咧?”“好咯好咯!切胳膊砍腿大甩卖,我就再少你两块咯!一块钱你就再也莫讲价哒”是吧!这样一来就算是成功的一次买菜! 道理是一样的! 程序抽象一点也有他的好处,因为你不知道他到底是一个什么样的实际“价格”,所以你设计的抽象一点到时候所谓的“灵活性”也就出来了!    我举一个程序的例子,删除一条产品数据,我在业务层写一个删除的方法,


public void del(int id){      dal.del("p_id="+id+""); //dal 为数据业务层封装的删除方法只需要传条件进去 }
这样写看上去没什么问题,但是突然我有了一个类别表,我删除这个类别,我就要把这个类别的所要产品都删除,那好,我又写一个方法:


public void delbyleibie(int id){      dal.del("l_id="+id+""); //dal 为数据业务层封装的删除方法只需要传条件进去 } 完了,看上去没什么问题,这时候,我又有一个品牌,我删除这个品牌我就要把这个品牌下所有的产品删除,那是不是又写一个删除方法呢? 聪明的你,肯定已经看出来了!我一个开始就出现了一个dal.del其实就是在那诱惑大家发觉得! 我直接在界面层 传条件过来 就只要写个方法就行了  随你传p_id="xx"还是l_id="XX"


public void delbyleibie(string where){      dal.del(where); //dal 为数据业务层封装的删除方法只需要传条件进去 } 这就是一个抽象的概念,当然也是很微小的一丁点,仅仅是思想的一处小的不起眼的应用! 但是,利用这一种思想,能另外我们的程序更合理,维护起来更方便!还有继承和多态,这个就只能囊中羞涩了!
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载