- 浏览: 604456 次
- 性别:
- 来自: 北京
最新评论
-
limeng650419:
想要将一个项目类生成在同一个类图怎么办》?
PowerDesigner导入java类生成类图 -
q77102902:
一语道破天机啊!
Weblogic 数据源及连接池配置问题Warning! Connectivity to backend database not verified -
chaliszhou:
收藏下,!!!
JAVA读写文件,如何避免中文乱码 -
lal324:
同上 顶起来
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/di -
luchuan10000:
非常正确!!!
JAVA读写文件,如何避免中文乱码
文章列表
自从看了《经济与法“辩辩辩”》,我就喜欢上了直言不讳、让人热血的时寒冰,他的慷慨激昂让我敬仰,他是一个有社会责任心的男人,真正的男人,希望大家多去他的blog看看他的帖子,深刻、入骨!借此文送给那些还未失去 ...
- 2009-03-05 16:14
- 浏览 1439
- 评论(0)
迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.
迪米特法则可以简单说成:talk only to your immediate friends。 对于面向OOD来说,又被解释为下面几种方式:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块 ...
一、ISP简介(ISP--Interface Segregation Principle):
使用多个专门的接口比使用单一的总接口要好。
一个类对另外一个类的依赖性应当是建立在最小的接口上的。
一个接口代表一个角色,不应当将不同的角色都交给一个接口。没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染。
“不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。
定义:客户端不应该依 ...
mybatis缓存的使用及理解
- 博客分类:
- ORM
和hibernate一样,mybatis也有缓存机制 一级缓存是基于 PerpetualCache(mybatis自带)的 HashMap 本地缓存,作用范围为session,所以当session commit或close后,缓存就会被清空
二级缓存默认也是基于 PerpetualCache,但是可以为其制定存储源,比如ehcache
一级缓存缓存的是SQL语句,而二级缓存缓存的是结果对象,看如下例子(mybatis的日志级别设为debug)
数据库性能之--iBatis延迟加载(懒加载)
- 博客分类:
- ORM
BATIS In Action为iBATIS展现自己强大功能提供了保证,iBATIS也可以完成更为复杂的任务。在本章中,我们会了解新的技术,减少我们的编码量;以及改善性能、降低资源消耗(footprint)的几种方法。
1 使用iBATIS操作XML
译者注:iBATIS的Java版本可以操作基于XML的数据。但意义并不是很大,在以后的版本中该特性可能会被移除。iBATIS.NET则未提供该功能。
2 使用映射语句关联对象
iBATIS框架也提供了多种方法用以关联复杂的对象,比如订单(order)和它的订单项(order item)(还有它们的相关产品、顾客等等)。每种方法都有其优点 ...
摘要:
第一部分:基础知识
第二部分:MYISAM
依赖倒置原则(Dependence Inversion Principle,简称DIP)包含三层含义:
高层模块不应该依赖低层模块,两者都应该依赖其抽象;
抽象不应该依赖细节;
细节应该依赖抽象。
高层模块和低层模块容易理解,每一个逻辑的实现都是由原子逻辑组成的,不可分割的原子逻辑就是低层模块,原子逻辑的再组装就是高层模块。那什么是抽象,什么又是细节呢?在Java语言中,抽象就是指接口或抽象类,两者都是不能直接被实例化的;细节就是实现类,实现接口或继承抽象类而产生的类就是细节,其特点就是可以直接被实例化,也就是可以加上一个关键字new产生一个 ...
我们都知道面向对象有三大特性:封装、继承、多态。所以我们在实际开发过程中,子类在继承父类后,根据多态的特性,可能是图一时方便,经常任意重写父类的方法,那么这种方式会大大增加代码出问题的几率。比如下面场景:类C实现了某项功能F1。现在需要对功能F1作修改扩展,将功能F1扩展为F,其中F由原有的功能F1和新功能F2组成。新功能F由类C的子类C1来完成,则子类C1在完成功能F的同时,有可能会导致类C的原功能F1发生故障。这时候里氏替换原则就闪亮登场了。
什么是里氏替换原则
前面说过的单一职责原则,从字面意思就很好理解,但是里氏替换原则就有点让人摸不着头脑。查过资料后发现原来这项原则最早是在 ...
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。
问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整 ...
单一职责原则(Single Responsibility Principle)
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时 ...
六大设计原则快速记忆SOLID
- 博客分类:
- 设计模式原则
常见的面向对象设计的原则,可以简化为SOLID原则,坚固slidi的软件需要遵循的原则。
1、单一职责原则SRP(Single Responsibility Principle)
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
...
参照http://jardot.iteye.com/blog/762349
定义一个实体UserInfo
package com.test;
import java.util.Date;
public class UserInfo {
Integer userId;
String userName;
Date birthDate;
Integer age;
public Integer getUserId() {
return userId;
}
public void setUserId(int userId) {
...
Spring IOC实现原理及优势和劣势
- 博客分类:
- spring
IoC是什么?Inversion of Control,即反转控制,或许说为依赖注入更为合适。IoC就是IoC,不是什么技术,与GoF一样,是一种设计模式。 Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等,但是接口一定是需要实现的,也就是如下语句迟早要执 行:AInterface a = new AInterfaceImp(); 这样一来,耦合关系就产生了,如: Class A{ AInterface a; A(){} aMethod(){ a = new AInterfaceImp(); } } Class ...
转自 http://www.jb51.net/article/32648.htm
Mysql跨表更新一直是大家所关心的话题,本文介绍mysql多表 update在实践中几种不同的写法,需要的朋友可以参考下:
假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。 在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts ...的方式:
UPDATE product p, pro ...
Aspect Oriented Programming 面向切面编程。解耦是程序员编码开发过程中一直追求的。AOP也是为了解耦所诞生。
具体思想是:定义一个切面,在切面的纵向定义处理方法,处理完成之后,回到横向业务流。
AOP 在Spring框架中被作为核心组成部分之一,的确Spring将AOP发挥到很强大的功能。最常见的就是事务控制。工作之余,对于使用的工具,不免需要了解其所以然。学习了一下,写了些程序帮助理解。
AOP 主要是利用代理模式的技术来实现的。
1、静态代理:就是设计模式中的proxy模式