框架和层级

去年在学校准备找工作的时候,因为没有学过Java的一些常用框架从而导致自己碰了不少壁。现在算上实习和工作大概5个月对框架和代码层级有了一些理解和认识,简单谈谈自己的看法。当然,这些看法应该还是比较浅薄的,或许一段时间之后再看自己的这篇文章可能会觉得自己的理解还不够深刻吧!

1.什么是框架

我理解的框架时让你来实现一个接口的某个方法,当程序运行时这个方法会被调用,但是你并没有写过调用这个方法的代码。框架这个词很形象,它的意思就是说我把主要的都给你做好了,你只要往里面填充一些东西就可以完成。
举一个最常见的例子:JDK中的多线程。

@Override
public void run(){
    //do something
}

当我们使用多线程的时候,我们一般让这个类继承runnable接口,然后实现run方法,在使用的时候我们调用start()方法。这时我们可以看到我们在run()方法中写的代码被执行,但是我们并没有调用过run()方法。
run()方法肯定被调用了,既然我们没有调用,那就是JDK调用了。那么这其实就可以看作是一个框架。框架是什么,我认为它是一种抽象,有些框架在上层进行了抽象,就像我们前面讲的例子,或者Spring MVC的DispatcherServlet,一般是让你实现它给的接口就可以按照我们想要的逻辑运行;另一种对底层做了抽象,类似mybatis(mybatis封装了JDBC对象转换的细节)。
并非只有ssh或者ssm才称得上是框架,我们再举一个JDK中的例子:HashSet集合与hashcode()、equals()方法。当我们向HashSet中add一个元素时这两个方法都会被调用。

2.什么是层级

我们看下面两段代码:

public class Layer1{
    public int sum(int a, int b){
        return a + b;
    }
}
public class Layer2{
    Layer1 layer1;
    public int sum(Param param1, Param param2){
        int a = param1.getNum();
        int b = param1.getNum();
        layer1.sum(a, b);
    }
}

Layer1这个类负责具体的计算逻辑,Layer2这个类负责提取入参中的有用信息,然后调用Layer1来执行计算逻辑。这里Layer2就是在Layer1之上封装的一层,这一层的作用就是拆解入参,这样很能体现出代码的单一职责。你可能觉得这样做多了好几个类,增添了许多调来调去的没有逻辑的代码,但是这样的代码可读性是很强的,可维护性也很强,不会出现牵一发而动全身的问题。搞学术研究的人一般都不太注意代码的可读性和可维护性,这一点和工程不同。搞工程未必有多么复杂的业务逻辑,不需要多么高深的算法,但是合理的设计可以提升代码的扩展性和维护性,而且许多架构的设计也能大大提升一个系统的性能和吞吐量(例如对高耗时的服务使用缓存)。
我见过许多鄙视这些写业务代码的人,觉得这都是面向API编程,没什么技术含量,他们动不动就提底层,提数学。我也只是一只菜鸟,没有评价人家的权利,但我很不认同这种看法。因为写业务代码也可以学到很多,前提是你要有一点求知欲,想知道自己的的代码什么时候被调用,想知道自己调用的类库的代码是如何实现的。其实许多框架是很好的源码,当熟悉一个框架的使用后尝试着去看一些它的源码,我想这样能获得很大的提升。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,380评论 18 399
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • (一)Java部分 1、列举出JAVA中6个比较常用的包【天威诚信面试题】 【参考答案】 java.lang;ja...
    独云阅读 11,946评论 0 62
  • 我们从很早就开始学习英语了,但是始终不见起色,照样是看别人说容易自己说难;照样是看到外国人,想去上前搭话却胆怯开口...
    我是荷叶田田阅读 1,369评论 0 1
  • 此文是笔者从大学毕业参加工作6年后受到爱因斯坦的质能方程E=MC2和个人经历总结而来,对于刚参加工作的学弟们可...
    苦行果阅读 4,262评论 1 2

友情链接更多精彩内容