面向对象和模式概念篇

序:
        客观:指不依赖于人的意识而存在的一切事物。换言之,不管人们是否认识它、是否知道它、是否承认它...都照样存在的,就是客观的。比如:万有引力,在牛顿发现它之前就已经存在,尽管人们感觉不到、认识不到,自打有地球开始他就存在,那它就是客观的。客观既包括有形的,也包括无形的。
      主观:跟客观正相反,指被人的意识所支配的一切。比如:人们想问题、做事情,都属于主观范畴。 
常用术语:
 
 
OOP:Object Oriented Programming.面向对象编程
FP:Function Programming 就是函数编程,这也是编程方式之一
PP:Procedural Pragramming:过程式编程

在OOP的世界里,任何事物,不管是无形的还是有行的,都是对象。 对象是包含一个些行为和属性的一种组合体。它反应的是 客观世界的任何事物。(在这里强调客观的原因是编程要描述的对象是大家都知道的,如果你非要创建一个自己意淫出来的“草尼马”,我靠,别说你用编程语言来描述,就是口术,我们这些“纯洁”的骚年也不懂啊。面向对象的一个理念也是为了用通俗易懂的方式编程,降低了编程语言的门槛),比方说:马有腿,耳朵和嘴巴等外观属性,它们会跑,也会嘶叫,交配等这些都是它们的行为。每个对象都属于某一特定的类型,就像汗血宝马的类型是就马
面向对象语言三个基本特征:
1.封装
        封装是面向对象最重要的特征之一,封装就是指的是 隐藏 (例如:private 。对象隐藏了数据, 避免了其他对象直接使用对象属性而造成程序之间的过度依赖,也可以阻止其他对象随意修改对象内部数据二引起对象状态的不一致。
  编程中使用到的封装
 a.“使用者”只能使用(被使用者的)公有的方法而不能使用那些受保护的或者私有的方法,对于被使用者来说,我们可以随意修改这些私有方法而不会影响使用对象。
 b. 隐藏具体类型,使用者不必知道对象真正的类型就可以使用它们(面向超类编程:依赖于接口和抽象带来的好处)
 c.使用者不需要知道与被使用者有关和使用者无关的那些对象,减少了耦合,只能通过公用接口和方法使用它们。这样,由于客户程序就不能使用那些受保护的方法(java中的private方法和protected方法),而你可以随意修改这些方法,而不会影响使用者,从而降低了耦合度。
2.继承
        继承可以使不同类的对象具有相同的行为:为了使用其他类的方法,我们没有必要重新编写这些旧方法,只要这个类(子类)继承包含那些方法的类(父类). 从下往上看,继承可以重用父类功能;从上往下看,继承可以扩展父类功能。
3.多态
      多态可以使我们以相同的方式处理不同类型的对象:我们可以使用同一代码嘛处理不同类型的对象,只要它们继承/实现了相同的类型。这样,我们没有必要为每一种类型的对象撰写相同的逻辑,极大提高了代码的重用程度.

模式:
   模式的最早提出是在建筑业中提出的,而后有人将模式设计引入到了编程世界中,1994年,第一本设计模式的书《Design Patterns:Elements of Reusable Object-Oriented Software》由
Erich  Gamma,Richard helm,Ralph Johnson and John Vlissides四人编写的书籍。书中收集了23种常用的设计模式 .而这四个人被简称为了“GoF”
模式定义(GoF給出的):
  The design patterns .... are descriptions of commnuicating objects and classes that are customized to solve a general desing problem in a particular context.
 设计模式...........描述了在一个特定上下文里,如何订制这些相互通信的对象和类解决一个常见设计问题。
小结:模式就是某一上下文环境中一个问题的 常用 解决方案。 模式就是一个解决方案,一个模式可以解决一类特定的问题,当我们再次遇到同样的问题时,我们仍然可以使用它解决同样的问题。  对于相似的问题,就采用通用的方法,即模式去解决问题。这也是代码重用方式...
    

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值