zoukankan      html  css  js  c++  java
  • 简单思考~java

    1.方法论——思想论

       现在流行的很多java web项目开发中使用的一些project,以及之间协同的机制方法,其实很多都在计算机系统,以及计算机网络中使用泛泛,给人以看山是山,看山不是山,看山还是山的变化感觉!

     或许,刚开始,若干年以前(或者现在的新同学)我们在写一个由java实现的项目时,不知如何下手,乃至于架构师搭建好框架后,要实现某一个功能,又不知如何下手?

     或许,我们听过很多java面向对象开发的一套说辞,乃至其他更多的论。

     我总结的其实是自己这几年来的感悟,不仅限于java,包括其他方面,囊括的一个思考——方法论。

    2.重要的两个思想:分层 、分而治之

     分层:比如我们web项目开发中的分层——  ccontroller层—>service层—>dao层 ,TCP/IP的OSI七层模型,或者说四层模型,包括其他各个project在实现上的分层,比如dubbo的9层

     分而治之:大数据处理中非常重要的思想。其实包括大流量处理的分库分表,削峰填谷,分布式微服务,集群等都是分而治之的部分体现。

    3.抽象的艺术:抽象—可以说我们的计算机和编程语言发展到现在离不开的一个就是抽象。从简单的晶体管到组合出简单的逻辑门,到与或非,异或组成复杂的 半加器,全加器等加法器,进而延伸出内存的实现,cpu的实现等。

    4.面向对象:通常说的有事找对象去做,为什么要有这么个对象,找对象去做呢?

       以前我们用C的时候可能更多的是偏向过程论,在这里要说明的是,面向对象是一种思想,并不是java独有。我们用其他语言也可以实现面向对象的开发。

     如果我们要开发,要做一个东西,那一定要有这么一个轮廓:它里面都有什么,都有哪些组件,最好能有一个简单的UML图,那每个组件都是实现什么功能,每个功能的实现步骤都是怎样的,有这么一个思路的话,那进一步,某个功能需要哪些组件(对象),这些组件(对象)里面都有那些作用(行为),对于每一个project的组件,或者说每个project组件中的功能的组件(对象),组件(对象)里的那些作用(行为),我么可以先去定义它的名称,再去实现它的细节底层,也可以称为由顶至下的开发。

      举个最简单的栗子:

          要写一个实现汽车从停止到跑动的动作,或者说方法,那我们可以这样实现:

                      伪表述:

           public   class Driver{

                public boolean run(Car car){  

                fire(car); //1.点火

                .....     //2.挂档

                .....     //3.握方向盘-踩油门

                .......   //4.监控驾驶 (单开线程)

                return true;//标志跑动成功

                }

              }

           先定义出这些步骤,具体的实现再去做,然后发现前期没有考虑到的,公共之处,进行抽出,或者发现某些问题需要解决,使用各种设计模式进行重构解决,每个project的产生,一般都不会是一蹴而就的,会是一个又一个重构的过程。我们需要去思考这些,然后在实际中养成这种习惯和思想,具备这样的能力,那可能某些问题将不再是问题。

    天行健君子以自强不息地势坤
  • 相关阅读:
    IsIconic() OnPaint里的用途
    中值滤波
    一个小学生题库生成器
    音视频同步
    [转]字符编码笔记:ASCII,Unicode和UTF8
    项目中常见bug及解决方法
    TSQL基础chp10可编程对象学习笔记[上]
    使用UdpAppender时出现了“使用了与请求协议不兼容的地址”的解决办法
    .net gridview 任意单击某行跳转到新的页面,并且新页面的参数来自于与gridview中的不可见字段
    数组去重的四种方法
  • 原文地址:https://www.cnblogs.com/wbqcheng/p/12392341.html
Copyright © 2011-2022 走看看