`
nianien
  • 浏览: 16977 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于Java开发不明白的一些问题

阅读更多

1.关于解耦

这个词自从接触设计模式以来,便整天萦绕耳边,以前觉得不错,但是最近越来越觉得像苍蝇了,能多恶心你就多恶心你.

本来解耦无可厚非,高内聚,低耦合谁都懂的道理,但是现在,这个词真的被滥用了.


解耦不过是一个用来迷糊人的手段,是追求过度设计的人显摆的工具

只有真正的内聚,没有绝对解耦,但凡你在某个地方切断联系,那么你必然会在另一个地方重新产生联系

通常来说,切断联系的地方就在于方法的调用(或者对象的实例化),而重新产生联系的地方就在于框架

物体被打碎以后,需要重新黏合在一起才能使用

代码被解耦以后,同样需要再次耦合起来完成功能

物体的黏合除了人还需要粘合剂

而对于代码来说,同样需要粘合剂,这里的粘合剂就是配置文件或者注解


本来嘛,不变的东西,用基类实现,不同的行为用子类复写,对于外界的调用,可以定义一个接口

现在倒好,搞一大堆配置文件,声称是解耦,可是配置文件改动的地方没有十分之一

把一个功能拆分到五六个方法里面,声称是为了代码复用,除了你用,别人根本不知道在什么地方

一个包含了全部逻辑的方法,拿到哪里都能用,现在呢,解耦了,复用去吧,离开框架你屁都不是,还解耦呢!


以前代码的整体感没有了,现在就是把一个完整的躯体给直接给肢解了,把关注的部分留下来,其他的都送给框架了,

送些衣服可以,可是如果连肉都送了,那么你的代码还真解不了藕,因为没有了血肉就是死



比较Struts1和Struts2两种框架,我承认后者配置更简单,但是谁要跟我说它有优点,简直是TMD的放屁:

1)与Web容器完全解耦

解个屁耦,难道Struts不是一个Web框架么?哪里能少得了Servlet API?没有Servlet,Struts屁都不是,

敢问有几个利用Struts而不是做Web开发的?

就算你解耦又如何?我还不是需要Request对象和Response对象?我使用了ContextUtil也能算解耦呢?

做Web开发又去和Web解耦,真是闲得蛋疼!

2)更容易测试,Web工程里面的逻辑有几个是脱离了Web环境来测试的?

不需要Web环境的代码段我可以单独放一个方法里定义,用得着使用Struts2来解耦?

3)Struts2比Struts1更容易理解,完全是放屁

不看文档,鬼知道从哪里获取Request对象和Response对象!

而且一个action又做M又做C,干脆你连V也做了,不更省事?不过话说这样的话,我还用得着框架?



2.关于接口

接口无非一种规范,我可以实现,也以不实现,我可以实现你想要的,也可以实现你不想要的;

不过用来约束的一种玩意儿,可是某些人却认为接口优于一切,没有接口就意味着不规范

于是,凡是逻辑处理类,一律xXXXX和xXXXXImpl,神马都是接口

接口是挺好,但是真的需要到处都用么?你的逻辑永远都不会改变,你整个接口到底是为什么?

仅仅是为了规范么?但是没有接口就不规范么?



3.关于IOC

自从Spring将IOC发扬光大以后,便言必称IOC,因为有了IOC,连接口都可以不用了

现在的Java已经走火入魔了,当C++返璞归真趋于平淡的时候,Java不知何事开始流行起奇技淫巧来了

仿佛学Java如果你不懂IOC,如果你不懂DI,如果你不懂AOP,如果你不懂Annoation,如果你不懂AspectJ,如果你不懂cglib,你就out了

IOC离不开配置文件,现在或者可以说离不开注解

真的很方便么?效率的低下尚且不说,调试的麻烦姑且不论,但是代码的理解还有可读性么?

你不跳出框架来看,你永远搞不明白它的逻辑

本来简单的几行代码就可以搞定,现在却要不停地在代码和配置文件直接跳来跳去

或者从一堆堆Annoation中找出你所需要的那几行.

4.关于Annoation

本来很反感XML的配置文件,仿佛和我一样的人大有人在,所有现在Annoation开始盛行

不过现在看来我倒是有点觉得XML没有那么反感了

至少,XML能让我感觉到代码的清爽,可是那么多的Annoation,真是惨不忍睹啊?

XML可以避免重新编译,而Annoation呢?

答案就是避免XML,直接写代码也能避免XML,需要Annoation干嘛呢?

又是为了俗不可耐的解耦?算了吧?即使解耦你就不需要写代码了?

改一段逻辑清晰的代码,比改一个个完全不明所以的注解容易多了

除非你去看注解的源码,或者相信注解的注释文档

分享到:
评论

相关推荐

    深入体验Java Web开发内幕

    【内容简介】  本书深刻且通俗地揭示Java Web开发内幕,使您由内而外地明白使用Java进行Web应用开发的全过程——从XML基础知识到HTTP详述及相关体验,从用Tomcat配置Web站点到HttpServletResponse和...

    java笔试经典题,作为java程序员必须明白的一些知识点

    一份java笔试,面试必答题! 包括:(1)面向对象基础与java基础;(2)J2EE开发基础;(3)应用服务器基础;

    Java语言基础编程.xmind

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    微信公众开放平台开发 -智能机器人java源代码工程

    刘峰的博客说明已经很详细了, 本人旨在帮助刚入门微信公众平台开发苦于无法着手而迅速上手准备的, 有不明白的请联系我或微信号guestsun。 导入整个工程到eclipse, 压缩包里面有hellochat.war文件部署到百度bae云...

    深入体验Java_Web开发内幕-核心基础

     本书深入地揭示Java Web开发内幕,细致地解释许许多多来自开发第一线的一知半解的问题。阅读本书,可以为您详细地剖析Java Web开发的全过程,使您轻松地解决在使用Java进行Web应用开发遇到的各类疑难杂症。  本书...

    java中一些集合问题

    在java开发中集合的排序是一个常见的问题,但是很难搞明白的,希望通过我这个文件和相关的资料帮助一下

    Java服务器端开发面试.doc

    Java服务器端开发面试题 Java服务器端开发面试题篇1 Hashcode()和equals(), 明白背后的原理,包括hashcode()的用法,各自的区别,如何,何时覆盖,为何覆盖 区别new String()和 申明的字符串的区别,String不变量,堆...

    java对excel流模式操作,easyexcel二次开发,解决多list左右行抵掉的问题和大数据下面放内容后性能问题

    2、本项目是由easyexcel开源项目二次开发,修改和新增了部分API 3、主要解决easyexcel(随意布局)左右布局,上下布局后,同一个Sheet多list会存在左右行抵掉的问题和大数据性能差的问题 4、使用本项目之前建议自己...

    张孝祥Java就业培训教程.pdf

    不仅讲操作技能,还贯穿一些系统的理论,这样读者才不至于不明不白,或是似乎明白,但不知道具体该怎么干。本书一步步引导读者深入,使读者轻松愉快、兴趣盎然、水到渠成、潜移默化地掌握Java编程及许多其他的软件...

    Java开发之文本编辑器TinyMCE-含上传本地图片

    强大易用的文本编辑器,HTML编辑器,绝对讲的明白,讲的清楚,有不清楚的请留言

    Java实习周报通用25篇

    我们不可能简单的了解一些企业文化,简单的学学新的知识就可以了,我们的这个实习必将是一个繁忙的实习,也必将是一个充实的,进步的实习。来到这里,我们要忘掉大学里自由的作息时间,克服困难,养成良好的工作...

    javaJDK+eclipse开发环境搭建指导

    网上资源太多,看了许久终于自己整明白了,本次软件版本为2012年截至到目前的最新版本,希望能给大家带来帮助

    整理后java开发全套达内学习笔记(含练习)

    看一下他们的有效位就明白。 二进制是无法精确的表示 0.1 的。 进行高精度运算可以用java.math包中BigDecimal类中的方法。 自动类型提升又称作隐式类型转换。 强制类型转换:int ti; (byte) ti ; 强制转换,...

    Java web 开发教程.doc

    很多人从事java web 开发,可不知道如何着手,今天我发尽心血总结这么一个教程,希望在java 路上的开发者一条明白之路!该文章风趣,幽默,学习之佳品!

    尚硅谷_宋红康_第17章_Java9&Java10;&Java11;新特性.pdf

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    学生管理系统.java

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    张孝祥java就业培训教程(完整版电子书)-书内源码及PPT文档

    不仅讲操作技能,还贯穿一些系统的理论,这样读者才不至于不明不白,或是似乎明白,但不知道具体该怎么干。本书一步步引导读者深入,使读者轻松愉快、兴趣盎然、水到渠成、潜移默化地掌握Java编程及许多其他的软件...

    尚硅谷_宋红康_第16章_Java8的其它新特性.pdf

    ·自Java语言起源始,循序渐进,知识点剖析细致且每章配备大量随堂练习,让你步步为营,学得透彻、练得明白 ·拒绝晦涩难懂的呆板教学,宋老师语言生动幽默,举例形象生动深入浅出,迅速让你把握问题本质,四两拨千...

    java文章合集2

    Java开发必须掌握的8种网站攻防技术.pdf JS中的二进制操作简介.pdf redis集群部署及踩过的坑.pdf 一文告诉你高逼格程序员上下班都在做什么.pdf 一网打进Linux下那些查找命令.pdf 不小心删库是一种怎样的体验?半个...

Global site tag (gtag.js) - Google Analytics