谈对象~

来源:互联网 发布:ubuntu samba源码包 编辑:程序博客网 时间:2024/04/30 08:01
写本文的目的,是为了帮助初学者了解类和对象~ 欢迎指正与交流~

    有人说:“类是为了增加代码的可重用性、可构建性而出现的~”
    有人说:“类的概念来自于人们认识自然、认识社会的过程。”
    有人说:“类是解决过多的IF、CASE与代码组装而出现的~”
    很少程序员有兴趣了解对象与类的起源~类和对象的说法也是各种各样,并都好象有其道理~

    ===========================

    其实,类和对象的灵感与概念源于中国古代建筑结构~并不段演化而来~

    某天一鬼佬到中国溜达溜达,发现中国古建筑非常的精妙,并写了一些建筑方面的书,后来被应用在工程学、管理学、计算机技术等方面~

    择一段中国古代建筑结构的一段相关资料:


    中国古建筑以木材、砖瓦为主要建筑材料,以木构架结构为主要的结构方式,此结构方式,由立柱、横梁、顺檩等主要构件建造而成,各个构件之间的结点以榫卯相吻合,构成富有弹性的框架。中国古代木构架有抬梁、穿斗、井干三种不同的结构方式……

    由此可见,中国古代建筑,把重用、重构和组装表现得淋漓尽致~框架的概念,几千年前的东西了~

    那这些又如何与计算机语言挂上钩的呢?我是这样理解的~

    重用:每一个构件都可以批量生产。也就是用模具生产。鬼佬把这些构件叫做Object,把这些模具叫作Class,其实啊,Object译成“对象”,我到现在还不太理解,香港特区和台湾省,译成“物件”其实是比较合适,就是一个物体,一个东西嘛,对象还以为结婚了呢,呵呵,说多了~
    重用在程序设计中涉及到类、它的实例化和继承~这些都是代码重用的主要方式~
类实例化后就是对象了,这个过程就好比是模具(类)生产(Concreate)出来的物件(Object,也就是一样东西)。类与对象这样理解是否好理解多了。

    继承,其实就是在一个模具(Class)的基础上,加点什么,以达到增强功能、改变接口/连接方法等目的。用它“继承”(其实用“扩展”比较合适)出来的模具(类),功能上与原来的被改造的模具(父类,其实这没有血源关系)基本一致,只是功能有所加强、接口/参数有所改变。有些朋友,学的时候被父类和子类搞蒙了,儿子为什么生下来就有父亲的功能?呵呵~

    组装:就是,构件与构件间都是以榫卯相吻合~这就是接口(Interface)和方法(Method)。通过N件构件的相互合作(调用),组合成一个具有更大功能的构件,这过程就是不同的对象相互合作,产生一定功能的组件(Component)。


    重构:当两个构件之间,接口/方法对不上怎么办,可以用一个“中间件”过渡一下~或是把连接的方法(参数)改掉一下等。如一个方形接口和一个圆形接口间的连接,可以把小的接口套一个别的什么,让它们吻合~

. 
原创粉丝点击