java
文章平均质量分 87
左潇龙
屌丝程序猿
展开
-
(十四)桥接模式详解(都市异能版)
魔都国贸附近,某天夜里十一点半。 那一晚,魔都出奇的没有做只打雷不下雨的勾当,老天似乎是要将魔都淹没一般,倾盆大雨像不要命似的拍打着地面。 漆黑的夜幕中,一道黑影从一个十字路口狂奔而出,而就在此时,一辆红色宝马急速穿过,一瞬间,黑影就犹如被巨力抛飞一般腾空而起,直到几秒钟后,才重重的摔落在车前十多米处。原创 2013-07-05 00:52:14 · 4023 阅读 · 6 评论 -
设计模式详解(总纲)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 最近一直在学习设计模式相关的知识,还是老规矩,和各位一起学习,一起探讨,本系列所发表所有内容仅代表个人观点。《简介》 说到设计模式,当初第一次听到时,第一反应就是很深奥,完全理解不了这个概念到底是什么意思,下面我先从网上摘录一份定义。 设计模式(Designpattern)是一套原创 2013-05-30 15:13:33 · 4758 阅读 · 7 评论 -
(十三)中介者模式详解(玄幻版)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 自盘古开天辟地以来,模式大陆之上,逐渐孕育出一种具有高级智慧的生物----人类。 多年以来,人类凭借着强大的繁衍能力,使得人类的数量急剧增长。伴随着数量的增加,各种争执与战争开始不可避免的产生,这一度使得人类的数量急剧减少,模式大陆也岌岌可危。原创 2013-07-02 11:02:01 · 5408 阅读 · 8 评论 -
(十二)命令模式详解(故事版)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 背景:小左是魔都某公司技术部的一名屌丝程序猿,每天的工作就是维护一个20世纪的古董级项目,由于公司不大,所以公司很多制度不太完善,导致小左每天都郁闷异常,只是靠偶尔的在刚毕业的小小美女程序媛旁边露一手,来丰富自己的精神生活。 某一天下午一点半,阴。原创 2013-06-30 02:14:03 · 6167 阅读 · 12 评论 -
(十一)外观模式详解(Service第三者插足,让action与dao分手)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 各位好,LZ今天给各位分享一个不太熟悉的面孔,但却是我们最经常使用的设计模式,外观模式。 定义:外观模式是软件工程中常用的一种软件设计模式。它为子系统中的一组接口提供一个统一的高层接口。这一接口使得子系统更加容易使用。原创 2013-06-22 23:25:32 · 3122 阅读 · 3 评论 -
(五)抽象工厂模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 前两章我们已经讨论了两种有关工厂的模式,今天我们来看最后一种与工厂相关的模式,抽象工厂模式。 抽象工厂模式算是工厂相关模式的终极形态,如果各位完全理解了上一章的工厂方法模式,那么抽象工厂模式就很好理解了。它与工厂方法唯一的区别就是工厂的接口里是一系列创造抽象产品的方法,而不再是一个原创 2013-06-12 18:45:03 · 4699 阅读 · 1 评论 -
(三)简单工厂模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 上一章我们着重讨论了代理模式,以及其实现原理,相信如果你看完了整篇博文,应该就对代理模式很熟悉了。 本章我们讨论简单工厂模式,LZ当初不小心夸下海口说不和网络上传播的教学式模式讲解雷同,所以现在感觉写一篇博文压力颇大。 如何来介绍简单工厂呢,LZ着实费了不原创 2013-06-08 23:55:43 · 6305 阅读 · 3 评论 -
(七)策略模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 上章我们着重讲解了观察者模式和事件驱动,那么本章来讨论一个个人认为在开发过程中出场率极高的设计模式,策略模式。 策略模式在LZ第一次接触到的时候,LZ是这么理解的,就是如果我们想往一个方法当中插入随便一段代码的话,就是策略模式。即如下形式。public cl原创 2013-06-16 17:47:13 · 6026 阅读 · 2 评论 -
(六)观察者模式详解(包含观察者模式JDK的漏洞以及事件驱动模型)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 本章我们讨论一个除前面的单例以及代理模式之外,一个WEB项目中有可能用到的设计模式,即观察者模式。 说起观察者模式,LZ还是非常激动的,当初这算是第一个让LZ感受到设计模式强大的家伙。当初LZ要做一个小型WEB项目,要上传给服务器文件,一个需求就是要显示上传进度原创 2013-06-16 00:42:26 · 6212 阅读 · 10 评论 -
(二)代理模式详解(包含原理详解)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 我特意将本系列改了下名字,原名是《设计模式学习之路》,原因是因为之前写过一篇《spring源码学习之路》,但是我感觉本次写二十三种设计模式,更多的还是分享给各位自己的理解,所以感觉学习之路有点不合适,另外,从本章开始,正式启用本人称呼,LZ。 好了,废话至此,本章接着讨原创 2013-06-06 00:37:11 · 8387 阅读 · 10 评论 -
(一)单例模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 上一章,我们学习了设计模式的概念,以及为什么要学习设计模式,还有在进行系统设计时应当遵守的六大原则,本章我们就来开始一一的学习GOF当中的二十三钟设计模式。 我一会在思考如何去诠释这么多设计模式,因为网上有很多现成的,可供学习的资料,我在想有什么地方可以让各位跟着我的节奏去学习,而原创 2013-06-02 13:15:03 · 8367 阅读 · 12 评论 -
(十)装饰器模式详解(与IO不解的情缘)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 LZ到目前已经写了九个设计模式,回过去看看,貌似写的有点凌乱,LZ后面会尽量改进。 那么本章LZ和各位读友讨论一个与JAVA中IO有着不解情缘的设计模式,装饰器模式。 定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态原创 2013-06-22 03:58:36 · 8035 阅读 · 6 评论 -
(四)工厂方法模式详解(另附简单工厂的死亡之路)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 文章开头首先非常感谢各位的支持,代理模式中提到了class文件(即字节码文件)的相关知识,有一位读者说想要看有关class文件的相关内容,我也意识到了这一点,所以以后如果有在讲解那个模式的过程当中用到了其它的技术,我会留一些篇幅去介绍这个技术,有关class文件的内容我也会看以后的模式当中有没有用到的原创 2013-06-10 14:17:22 · 3695 阅读 · 2 评论 -
(十七)迭代器模式详解(foreach的精髓)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 各位好,很久没以LZ的身份和各位对话了,前段时间为了更加逼真的解释设计模式,LZ费尽心思给设计模式加入了故事情节,本意是为了让各位在看小说的过程中就可以接触到设计模式,不过写到现在,LZ最深的感触就是,构思故事的时间远远超过了LZ对设计模式本身的研究。原创 2013-07-20 22:32:14 · 3324 阅读 · 0 评论 -
(十九)组合模式详解
定义:(GoF《设计模式》):将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 从定义中可以看出,组合模式用来表示部分与整体的层次结构(类似于树结构),而且也可以使用户对单个对象(叶子节点)以及组合对象(非叶子节点)的使用具有一致性,一致性的意思就是说,这些对象都拥有相同的接口。原创 2013-08-05 01:06:32 · 2325 阅读 · 0 评论 -
(十八)享元模式详解(都市异能版)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 魔都。 自从越狱风波过去以后,小左就又回到了某天桥,开始了之前的算命之旅。 说起这次越狱风波,着实让小左心情沉闷了很久。原因无他,就是因为在施展一次记忆恢复的过程中,发生了一点意外,结果导致一名看守所人员的记原创 2013-08-04 20:05:50 · 2520 阅读 · 1 评论 -
回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议
社招面试如何准备以及JAVA各阶段如何学习。原创 2016-05-23 16:32:10 · 24235 阅读 · 30 评论 -
JVM源码---教你傻瓜式编译openjdk7(JAVA虚拟机爱好者必看)
LZ经过一个星期断断续续的研究,终于成功的搞定了JDK的成功编译与调试。尽管网络上的教程也有不少,包括源码中也有自带的编译步骤说明,但真正自己动手的话,还是会遇到不少意料之外的错误。 为了方便各位猿友编译,LZ临时学了一下shell的皮毛,写了三个shell的小脚本,只要执行这三个小脚本,你就会获得一个自己编译出来的JDK。这个JDK是可以调试的JDK,这对于我们研究JAVA虚拟机是非常重要的一项工作。 好了,接下来LZ就一一将步骤列出,非常简单,真正的傻瓜式编译步骤原创 2013-09-07 19:18:30 · 2737 阅读 · 1 评论 -
最实用的10个重构小技巧排行榜,您都用过哪些呢?
LZ最近一直在研究虚拟机源码,可惜目前还只是稍微有一点点头绪,无法与各位分享,庞大的JAVA虚拟机源码果然不是一朝一夕能搞定的,LZ汗颜。 本次我们抛开JAVA虚拟机源码这些相对底层的东西,LZ来与各位探讨一下几个代码重构的小技巧,这些内容部分来自于书籍当中,部分来自于LZ维护项目当中的一些实践经验。如果猿友们曾经用过这种手法,也不妨参与到文章的留言当中,将你的小心得、小体原创 2013-09-10 10:04:20 · 5789 阅读 · 12 评论 -
设计模式大杂烩(24种设计模式的总结以及学习设计模式的几点建议)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 迄今为止,LZ已经将24种设计模式介绍完了,其中包括GOF23种设计模式以及简单工厂模式,这些设计模式之间并不是完全独立的,而是互相之间,会有一些相同的影子,下面LZ分几个方式去对比和总结下这些设计模式。类型分类:1、创建型设计模式:原创 2013-08-14 11:37:08 · 5651 阅读 · 3 评论 -
JNI探秘-----你不知道的FileInputStream的秘密
设计模式系列结束,迎来了LZ第一篇关于JAVA虚拟机的文章,这一系列文章不再像之前的设计模式一样,有着严格的约束力,本系列文章相对会比较随性,本次LZ就跟各位分享一个关于FileInputStream的小秘密。原创 2013-08-14 22:42:49 · 3674 阅读 · 1 评论 -
JNI探秘-----FileInputStream的read方法详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 上一章我们已经分析过FileInputStream的构建过程,接下来我们就来看一下read方法的读取过程。 我们先来看下FileInputStream中的四个有关read的方法的源码,如下。 public native int read() throws IOExce原创 2013-08-15 09:49:44 · 3998 阅读 · 3 评论 -
(八)适配器模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 各位好,我们本次接着讨论第八个设计模式,适配器模式。 适配器模式从实现方式上分为两种,类适配器和对象适配器,这两种的区别在于实现方式上的不同,一种采用继承,一种采用组合的方式。 另外从使用目的上来说,也可以分为两种,特殊原创 2013-06-16 21:14:38 · 3025 阅读 · 0 评论 -
(二十四)解释器模式详解
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 解释器模式是平时工作当中相对冷门的一个设计模式,也非常的难于理解,百度百科上的解释也非常之少,只是简单的介绍了一下,并且说了一句,可以参考正则表达式为一个实际的应用例子。 下面LZ先将百度百科上的定义以及解决的问题拔到这里,方便各位观看。原创 2013-08-12 00:54:06 · 3163 阅读 · 1 评论 -
(二十三)原型模式详解(clone方法源码的简单剖析)
原型模式的分析以及clone方法的源码解释。原创 2013-08-11 02:42:04 · 3049 阅读 · 1 评论 -
(二十二)访问者模式详解(伪动态双分派)
本次LZ和各位分享一下访问者模式,从场景、设计初衷以及实现方面来说,访问者模式算是LZ即将写到的24种设计模式当中,最复杂也是最难理解的一个设计模式。原创 2013-08-10 17:01:43 · 3108 阅读 · 3 评论 -
(二十一)状态模式详解(DOTA版)
我们来试着写一个DOTA的例子,最近貌似跟DOTA干上了,不为其他,就因为DOTA伴随了LZ四年的大学时光。原创 2013-08-07 01:42:00 · 4183 阅读 · 2 评论 -
(二十)职责链模式详解(都市异能版)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 凌晨两点,魔都某出租屋。 "God like." ....... "Holy shit." ...... “哈哈。老子终于超神一次啦。”伴随着原创 2013-08-05 22:40:08 · 2702 阅读 · 0 评论 -
(九)模板方法模式详解(包含与类加载器不得不说的故事)
作者:zuoxiaolong8810,转载请注明出处。 模板方法模式,这是一个在许多优秀的开源项目中LZ见的最多的一个设计模式,也是LZ觉得最为优秀的一个设计模式,所以这一章LZ会尽自己所能的去尽量将这个设计模式解释清楚。 模板方法模式,一般是为了统一子类的算法实现步骤,所使用的一种手段或者说是方式。它在父类中定义一系列算原创 2013-06-18 03:35:11 · 2824 阅读 · 0 评论 -
spring源码学习之路---深入AOP(终)
作者:zuoxiaolong8810(左潇龙),转载请注明出处。 上一章和各位一起看了一下springAOP的工作流程,当我们给出AOP相关的配置以后,直接从IOC容器中拿出来的就是已经加强过的bean。这说明spring在这个过程中一定做了什么。 本章我们就一起来看一下spring是如何完成对bean的增强的,首先我们来看一下,原创 2013-05-22 22:28:03 · 3492 阅读 · 2 评论 -
一个自己编写的xml和JAVA对象之间的转换工具,xml和对象轻松转换(simple-xml2object)
simple-xml2object组件禁止用于商业用途,作者:左潇龙。 前段时间公司的WebService接口需要处理xml数据,主要就是和对象之间的互相转换,传输的时候用xml,后台使用的时候转换成对象,所以就有了xml和object之间经常的互相转换。 因为我们的项目使用的JDK是1.5,所以并没有JAXB,如果要使用的话需要加原创 2013-03-18 23:36:25 · 4851 阅读 · 1 评论