迪米特法则有很多种说法,比如:一个类应该应该对其他类尽可能了解得最少;类只与直接的朋友通信等等。但是其最终目的只有一个,就是让类间解耦。
设计模式六大原则 - 接口隔离原则
类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类B和类D来说不是最小接口,则类B和类D必须去实现他们不需要的方法。
设计模式六大原则 - 依赖倒置原则
类A直接依赖于类B,假如要将类A修改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑。类B和C是底层模块,负责基本的原子操作。假如修改类A,将会给程序带来不必要的风险。而遵循依赖倒置原则的程序设计可以解决这一问题。
设计模式六大原则 - 里氏替换原则
我们都知道面向对象有三大特性:封装、继承、多态。所以我们在实际开发过程中,子类在继承父类后,根据多态的特性,可能是图一时方便,经常任意重写父类的方法,那么这种方式会大大增加代码出问题的几率。比如下面场景:类C实现了某项功能F1。现在需要对功能F1作修改扩展,将功能F1扩展为F,其中F由原有的功能F1和新功能F2组成。新功能F由类C的子类C1来完成,则子类C1在完成功能F的同时,有可能会导致类C的原功能F1发生故障。这时候里氏替换原则就闪亮登场了。
设计模式六大原则 - 单一职责原则
初学者在编程的时候可能一开始会有这样的经历,使用一个类来实现很多的功能,新添加的甚至不相关的功能都放在一个类里来实现,煮成了一锅大杂烩,往往使得某个类包罗万象,无所不能。可能刚开始实现功能比较简单,这样做不会引发什么特别大的问题。但是随着项目复杂度的提升,各种不相关的实现代码耦合在一起,一旦有功能的更改或增删,修改的代码很可能会导致其他功能的正常运行。这种编程方式显然是不可取的,也就是违背了所谓的单一职责原则。
使用JXL组件操作Excel和导出文件
这段时间参与的项目要求做几张Excel报表,由于项目框架使用了jxl组件,所以把jxl组件的详细用法归纳总结一下。本文主要讲述了以下内容:
- JXL及相关工具简介
- 如何安装JXL
- JXL的基本操作
- 创建文件
- 单元格操作
- 合并单元格
- 行高和列宽
- 数据格式化
- 字符串格式化
- 对齐方式
- 读取文件
- 修改文件
- 导出文件实例
Java中的Listener 监听器
本文介绍了Listener以下几个方面的内容:
- Listener的定义与作用
- Listener的分类与使用
- ServletContext监听
- Session监听
- Request监听
- Listener的应用实例
- 利用HttpSessionListener统计最多在线用户人数
- Spring使用ContextLoaderListener加载ApplicationContext配置信息
- Spring使用Log4jConfigListener配置Log4j日志
- Spring使用IntrospectorCleanupListener清理缓存
Java中的Filter 过滤器
本文主要详细介绍了Filter的以下几个方面内容:
- Filter概念介绍
- Filter的用途
- 如何借助Filter实现拦截功能
- Filter的开发步骤和配置详解
- Filter链
- Filter的生命周期
- Filter的使用案例
- 使用Filter验证用户登录安全控制
- 防止中文乱码过滤器
- Spring+Hibernate的OpenSessionInViewFilter控制session的开关
- Struts2的web.xml配置
Octopress博客的个性化配置
本文主要讲述了对Octopress搭建的博客进行一些个性化的配置,主要包括以下几个方面:
- 优化提高博客的访问速度
- 设置链接在新窗口打开
- 配置首页文章以摘要形式展示
- 代码着色
- 添加侧边栏文章分类
- 添加多说评论系统
- 自动为图片添加URL前缀
- 添加访客统计