`
vs_diy
  • 浏览: 740 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

面向对象编程基础

阅读更多
      在设计软件的时候,有时假思维没有转化过来。常常会以流程化或过程化的思维来设计与编码。而流程化的设计主要是一些代码的堆积,有时会出现混乱,虽然我用用的是JAVA这个彻底地面向对象的语言。可实际上设计的时候会感觉到函数式编程或过程结构化编程。这样会导不能致一些不记后果:
         1.代码没有层次性,归类,混乱,不易阅读。
         2.代码重用性差。这个项目做完以后,里头的一些模块很难再服务于其他系统.
         3.代码中没有应用到面向对象编程思想,比如接口(interface),变量的生存周期,抽象(abstract)与继承(inherit)。以及覆盖(override),以及模块化思想(低内聚,高耦合)。有时个个模块的耦合性太大。导致代码后期维护困难。而面向对象就是为处理这个问题而出现的。所以在应用与开发的过程中,应该尽量以类与对象为实体,考虑系统的动态行为方式。
       包括:
             1.抽象
             2.对象与类
             3.对象之间的交互
             4.对象之间的关联
             等等
   其实概括成一句话就是充分理解对象的角色,职责,以及交互。只有充分理解对象的这些行为和属性,以及属性的生存周期(有时把属性当成local properties, class scope proprities也可).


   下面我以IM即时通信系统为例:
      去分析一下系统的功能模块
            实现群聊和私聊。用户列表。消息推送。文件传输。天气预报。用户签名。
    语音视频,上线下线通知。网络硬盘。传输表情。单点登陆到其他网站或系统。消息历史查询。
      外观界面修改等等(注意要原创性开发)开始完全模似QQ,YY进行开发。

    上面是这个系统的一些基本需求。你能够抽取出它的一些类与对象吗?你能够定义它们的角色以及职责,它们之间的交互嘛。 当然要做好这件事情是非常不容易的。
     1.具有良好的协议,比如XMPP协议
     2.具有良好的框架与结构。比如osgi,MVC(swing,qt,等)
     3.具有良好开发经验的框架设计者与程序员
     ................................................................


    下面是我学习过程中的一些技术总结,希望跟大学一起学习与交流.

        1.dom4j.jar api解的xml文件
        2.正则表达式,解析字符串 oro.jar
        3.luncene.jar查询与检索全文API
        4......................
        5.JDBC ,iBatis,Hibernate,JPA
        6.Spring ,EJB
        7.Socket,tcp/ip,mina,java.nio
        8.java.io,java输入输出
        9.面向对象设计基础,abstract,interface,override等
        10.java gui (swing,swt,gwt,flex)
        11.java多线程,泛型,集合,异常处理机制等等
        12.j2me,android嵌入式手机开发
        13.windows,linux,unix系统搭建环境等等
        14.海量数据处理,hadoop,mongoDB,应用
        15.java模块化osgi




                  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics