`
liuxi1024
  • 浏览: 384923 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
1、概念理解     外观模式:提供了一个统一的接口,用来访问子系统中的一群接口。外观模式定义了一个高层接口,让子系统更容易使用。     软件设计原则:要减少对象之间的交互,只留下几个“密友”。这个原则被成为“最少知识(Least Knowledge)原则”,它告诉我们只和自己的密友谈话。     *外观模式在简化接口的同时,依然将系统完整的功能暴露出来,一共需要的人使用。     *外观模式不仅简化了接口,也将客户从组件的子系统中解耦。     *适配器(Adapter)模式和外观(Facade)模式都可以包装多个类,前者的目的是将接口重新组织后提供新接口,后者的目的是简化接口。由 ...
1、定义 将一个类的接口,转换成客户期望的另一种接口。适配器让原本不兼容的类可以合作无间。 2、Head Frist 设计模式中关于适配器模式   说明:适配器需要实现目标接口   3、java中编写将枚举适配到迭代器 适配器Enumeratorlterator.java public class EnumerationIterator implements Iterator<Object> { Enumeration<Object> enume; public EnumerationIterator(Enumeration<O ...
1、定义 《Head First -Design Pattern》 一书中定义其作用如下:      The Singleton Pattern ensures a class has only one instance, and provides a global point of access it. (确保每个类只有一个实例,并提供它的全局访问点)   2、两种形式 (1)使用"急切"创建实例   public class SingletonPatternA { private static Single ...
1、工厂模式的形式     工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态的决定将哪一个类实例化,工厂模式有以下几种形态:     简单工厂(Simple Factory)模式:又称静态工厂方法(Static Factory Methord)模 ...
1、概念描述       该模式以对客户端透明的方式扩展对象的功能。       装饰者模式:动态地将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。       装饰者和被装饰者必须是一样的类型,这是相当关键的地方。我们利用继承达到"类型匹配",而不是利用继承获得"行为"。装饰者和被装饰者需具有相同的"接口",使得装饰者能够取代被装饰者;他们的行为,是通过组件之间的组合得到的。       涉及的角色:       (1)抽象构件角色:定义一个抽象接口,来规范准备附加功能的类。       (2) ...
观察者模式是对象的行为模式,顾名思义,即存在观察者和被观察者。 观察者模式可以让多个观察者同时监听同一个被观察对象,当被观察对象发生变化时,并通知所有观察者,使各个观察者能作出相应的响应。 在java中提供了Observerable类和Observer接口来实现观察者模式。 JAVA 内置的 Observer 类不是一个好的设计。首先,因为 Observable 是一个“类”,则必须设计一个类继承它,如果某类想同时具有 Observable 类和另一个超类的行为,就会陷入两难,这限制了Observale 的复用潜力。其次,Observable 将关键方法 setChange() 方法保护起来 ...
策略模式(Strategy Pattern)中体现了两个非常基本的面向对象设计的基本原则:封装变化的概念;编程中使用接口,而不是对接口实现。策略模式的定义如下: 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。 策略模式使开发人员能够开发出由许多可替换的部分组成的软件,并且各个部分之间是弱连接的关系。弱连接的特性使软件具有更强的可扩展性,易于维护;更重要的是,它大大提高了软件的可重用性。 下面使用spring中源码说明策略模式(spring validation) 1、UML图说明  说明:UserValida ...
Cookie的格式实际上是一段纯文本信息, 由服务器随着网页一起发送到客户端, 并保存在客户端硬盘中指定的目录的. 大家都传说Cookie会造成 严重的安全威胁什么的, 其实不是这么回事情. 服务器读取Cookie的时候, 只能够读取到这个服务器相关的信息. 而且, 浏览器一般只允许存放 300个Cookie, 每个站点最多存放20个, 而且, 每个Cookie的大小现在在4K, 根本不会占用多少空间. 并且, Cookie是有时 效性质的. 例如, 设置了Cookie的存活时间为1分钟, 则一分钟后这个Cookie就会被浏览器删除。       Cookies是一种能够让网站服务器把 ...
1、request对象 request对象封装了客户端的请求信息,服务端通过request对象可以了解到客户端的需求,然后做出响应。request对象是 HttpServletRequest(接口)的实例。HttpServletRequest接口继承自ServletRequest接口,只是增加了一 些HTTP相关的方法。所谓的request(在JSP中使用的)其实只是规范中的一个名称而已,它是一个对象,但并不是由SUN提供,而是由各个不同的 Servlet提供商编写的,SUN只是规定这个类要实现HttpServletRequest接口,并且规定了各个方法的用途,但具体的实现则由各个提 ...
1、导出工具Exp,%oracle%\bin下 exp 导出工具将数据库中数据备份压缩成一个二进制系统文件.可以在不同OS间迁移 它有三种模式:        a.  用户模式: 导出用户所有对象以及对象中的数据;        b.  表模式: 导出用户所有表或者指定的表;        c.  整个数据库: 导出数据库中所有对象。   2、数据导出例子 (1) 将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中    exp system/manager@TEST file=d:\daochu.dmp full=y ...
1、*.properties文件 driverClassName=sun.jdbc.odbc.JdbcOdbcDriver url=jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=D\:\\WorkSpace\\fcs\\database\\Local.mdb username= password=  2、将这些属性注入spring容器   <context:property-placeholder location="/WEB-INF/jdbc.properties" /> < ...
@PostConstruct 和 @PreDestroy Spring 容器中的 Bean 是有生命周期的,Spring 允许在 Bean 在初始化完成后以及 Bean 销毁前执行特定的操作,您既可以通过实现 InitializingBean/DisposableBean 接口来定制初始化之后 / 销毁之前的操作方法,也可以通过 <bean> 元素的 init-method/destroy-method 属性指定初始化之后 / 销毁之前调用的操作方法。关于 Spring 的生命周期,笔者在《精通 Spring 2.x—企业应用开发精解》第 3 章进行了详细的描述,有兴趣的 ...
概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。 注释和 Java 代码位于一个文件中,而 XML 配置采用独立的配置文件,大多数配置信息在程序开发完成后都不会调整,如果配置信息和 Java 代码放在一起,有助于增强程序的内聚性。而采用独立的 XML 配置文件,程序员在编写一个 ...
启动dbserver.bat @java -cp ../hsqldb-1.8.0.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb  如下报错   1、java.net.BindException: Address already in use: JVM_Bind 问题原因: (1)Address already in use hsqldb需要使用的端口被其他程序占用了。 (2)用netstat -ano 命令查看端口占用情况 ---------------------------------------- ...
Java中可以使用HttpURLConnection来请求WEB资源。   1、 URL请求的类别 分为二类,GET与POST请求。二者的区别在于:       a:) get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,       b:) post与get的不同 ...
Global site tag (gtag.js) - Google Analytics