大话设计模式感悟(1)——OOP(面向对象编程)基础

一、设计模式

            初看《大话设计模式》感觉设计模式就以一些前人总结的代码设计模版,这些模版就是为了让代码可以重用、容易让人理解。简单的说就是为了让我们做的软件能像电脑主板一样,只要提供一些CPU接口,内存接口等等,就可以组装一台电脑。不同的设计模式就像不同型号的主板一样,只是更改了一些CPU接口,内存接口的位置、数量、规格。

二、OOP(面向对象)

          乍一看面向对象,有人肯定会问什么是对象?什么是面向对象编程?

      对象就是类的实例化,什么是类?做个比喻电脑中的CPU就是一个类(下面文章中就叫它CPU类,内存就叫内存类),我们熟知的Intel Core i7 CPU 、Intel Core i5 CPU就是CPU类的实例化即对象。

      面向对象编程是指,面向对象的编程设计。做个比喻组装电脑就是一种面向对象的设计,利用许多CPU类,内存类,显卡类等等,然后把这些类实例化以后组装成了一台电脑,而在编程中我们就是利用这种思想把具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。然后把它们实例化以后组装成一个程序。

三、OOP基础

           1)类与实例

           类就是具有相同特性(数据元素)和行为(功能)的对象的抽象,就像上面所说的CPU类,内存类。

           实例就是对象的另一种说法,对象是一个自包含的实体,用一组可识别的特性和行为来标识。即CPU类中不同型号的CPU(Intel Core i7 CPU)。

          2)方法重载。

                方法重载是让类以统一的方式处理不同类型数据的一种手段。做个比喻:我们写好的word文档,当我们保存word时候可以保存为doc格式的也可以保存docx格式的,它们都是用保存这个方式处理,但是一个是doc格式的一个是docx格式的数据的类型不同。

          3)属性与修饰符。

                  属性是一个方法或一对方法。即比如我们穿的衣服,衣服的颜色就是衣服的一个属性。

           修饰符用于限定类型以及类型成员的申明的一种符号。有Public、Private、Protected、Abstract、Const、Event、Extern、Override、Readonly等。即比如我们穿衣服,内裤得穿在最里面不能让别人看到它的修饰符就是Privatve,外套得穿在外边能让别人看到它的修饰符就是Public。我觉得修饰符就是规定这个东西只能在哪使用,其它地方使用不了。

         4)封装。

         封装就是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

         做个比喻一个CPU就是一个很好的封装,它就是只提供了一个接口让它能与主板相结合的接口,而我们根本看不到它内部是怎么做的。

       封装特点:1.良好的封装能够减少耦合。就像我们组装电脑的时候CPU坏了就只用换个CPU就行了。而不用把主

                            板,内存什么的全部都换掉。

                         2.类内部的实现可以自由地修改。比如我们的CPU内部不断的升级从奔腾到酷睿,它的工艺不断的改

                         变,

                                       3.类具有清晰的对外接口。比如我们CPU对主板就有一个接口让CPU能插入主板上。

          5)继承。

                 对象的继承代表了一种“is-a”的关系,指一个对象直接使用另一对象的属性和方法。做个比喻就是你是一个类你爸爸是一个类,你学会了你爸爸的一些手艺还有你的某个地方长的很像你爸爸,这就是继承。

          6)多态。

                多态标识不同的对象可以执行相同的动作,但要通过它们自己的实现代码来执行。比如一对父子,父亲是非常有名的京剧,儿子长大了,模仿父亲的戏也惟妙惟肖。有一天他父亲病了,上不了台表演,而票都早就卖出了,退票显然不行,那就决定儿子代替父亲上台表演,京剧化妆以后谁都不认识,只要唱好了就过去了。唱戏就是通过多态来完成的。

          注意事项:1.子类以父类的身份出现,儿子代表父亲表演,化妆后就是已父亲的身份表演。

                            2.子类在工作时按照自己的方式实现。儿子模仿的再好那也是模仿。儿子只有以自己的方式去演

                                出。

                           3.子类以父类的身份出现时,子类特有的属性和方法不可以使用。儿子学习这么多年,其实已经有了

                              自己的创作,但是在这个时候,是代表父亲表演时绝活不能表现出来。

           7)重构。

                  重构就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。就像电脑原来有一个内存我现在再加一个内存条。

          8)抽象类。

                抽象类是指一个抽象的概念形成的类。这种类是用来继承的。比如猫、狗、熊、猴子它们的抽象类就是动物。

         注意几点:1.抽象类不能实例化。

                           2.抽象方法是必须被子类重写的方法。

                           3.如果类中包含抽象方法,那么类就是必须定义抽象类,不论是否还包含其他一般方法。

         9)接口。

               接口就是把隐式公共方法和属性组合起来,以封装特定功能的以个集合。打个比喻就是飞机会飞,鸟也会飞,飞这个方法就可以弄成一个接口,这样就可以达到类的复用。

        抽象类与接口的区别:1.类是对对象的抽象;抽象类是对类的抽象;接口是对行为的抽象。

                                            2.如果行为跨越不同类的对象,可使用接口;对于一些相似的类对象用继承抽象类。

                                            3.抽象类是从子类发现了公共的东西,泛化出父类,然后子类继承父类。接口是根本不

                                               知子类的存在,方法如何实现还不确认,预先定义。

        10)集合与数组。

              集合与数组的区别:1.数组内存中是连续存储,可以快速而容易地从头到尾遍历元素,数组的变量大小是固

                                         定的,在两个元素之间添加元素是很困难的。

                                         2.集合用于数据存储和检索的专用类,这些类统称集合,集合支持堆栈、队列、列表、哈希

                                         表,集合有大量接口。在两个元素之间添加元素和简单。

       11)泛型。

            泛型就是具有占位符的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。

      12)委托与事件。

         委托是对函数的封装,可以当作给方法的特征指定一个名称。而时间则是委托的一种特殊形式,当发生有意义的事情时,事件对象处理通知的过程。

             

               

              

                     

 

                    

               

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值