`
flowercat
  • 浏览: 361731 次
社区版块
存档分类
最新评论
文章列表
Composite模式好处: 1.调用简单,可以一致的使用组合结构或其中单个对象,用户就不必关系自己处理的是单个对象还是整个组合结构,这就简化了调用的代码。 2.更容易在组合体内加入对象部件,客户端不必因为加入了新的对象部件而更改代码。 特点:必须以一致的方式来处理对象。单个对象和组合结构的处理方式必须一致。
Active Object 模式是Command模式的一种,是实现多线程控制的一项古老技术 . 在《敏捷软件开发》这本书中描述的算法如下: 1、构造一个命令。(实现Command模式的一个命令) 2、将该命令放入Active Object Engine(也就是放入一个队列,LinkedList) 3、从该Engine取出一个命令,执行,若该命令没有执行过,设为执行过,然后将自己加入队列尾部,若执行过,判断该命令执行需要的事件发生没有,未发生,再将自己加入队列尾部。事件发生了,将需要执行的命令加入队列尾部。
convert -geometry 90 PICT0002.JPG -crop 90x90+0+22 PICT00019.JPG 0,22是画布偏移量,截取的左上角坐标。
    Template Method模式和Strategy模式都可以用来分离高层的算法和低层的具体实现。都运行高层的算法独立于它的具体实现细节重用。Streategy模式也运行具体实现细节独立于高层的算法重用,不过是要以一些额外的复杂性、内存以及运行时间开销为代价。      Template Method模式使用继承和override或者抽象类,Strategy使用委托来达到分离通用的算法或处理和具体的上下文。           Template Method模式在父类(可以为抽象类)中写通用的应用功能或算法,具体的算法实现或者通用功能上的扩展在具体的子类完成。子类通过实现父类的抽象方 ...
   共同点都是把某种策略施加到另外一组对象。Facade从上面施加策略,Mediator从下面施加策略。Facade模式的使用是明显切受限制的,Mediator模式的使用是不明显且不受限制。     如果要为一组复杂且全面的接口的对象提供一个简单且特定的接口时,就可以使用Facade模式,例如屏蔽底层db的java.sql包的细节,或者提供Session Bean屏蔽对底层Entity Bean的调用。     Mediator让它的使用者并不知道该Mediator的存在。Mediator对用户是隐藏的,他的策略是即成事实的而不是一项约定事务。
    在需要强制要求某个特定对象只能具有单一实例的时候,可以使用Singleton和Monostate模式。     Singleton模式使用私有构造函数,一个静态变量,以及一个静态方法对实例化进行控制和限制。     优点:     1、跨平台,使用合适的中间件(RMI);2、适用于任何类     3、可以透过派生类创建;4、延迟创建对象,getInstance的if判断     缺点:     1、没有Destroy方法     2、不能继承     3、效率问题,每次getInstance需要if判断,大多数情况是多余的。     4、不透过,调用者必须通过getInstance访问, ...
<aop:config proxy-target-class="true"> <aop:advisor pointcut="execution(* com.company..*Manager.*(..))" advice-ref="txAdvice" /> </aop:config> <tx:advice id="txAdvice"> <tx:attributes> <tx:method name=&qu ...
      在项目过程中有一个需求需要根据用户的一些长号码信息(例如手机号)进行散列在磁盘产出n多目录。使用shell脚本完成这个工作的话mkdir的-p参数将非常有用,该参数告诉mkdir创建所有缺少的父目录。
lsof使用它既可以知道进程打开了哪些文件,也可以了解一个文件被哪个进程打开。 查看对某个文件的使用情况 查看哪些进程对某个文件进行了调用: $ lsof /etc/passwd 1 查看对文件系统的使用 /tmp目录被垃圾文件塞满了, 但是, 用l ...
ulimit 用于shell启动进程所占用的资源。 可以使用该命令查看进程占用资源的情况。 使用方法:ulimit [-acdfHlmnpsStvw] [size] -H 设置硬件资源限制. -S 设置软件资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创建文件的最大值.单位:blocks -l size:设置在内存中锁定进程的最大值.单位:kbytes -m size:设置可以使用的常驻内存的最大值.单位:kbytes -n size:设置内核可 ...
1. 概述 本文主要包括以下几个方面:编码基本知识,java,系统软件,url,工具软件等。 在下面的描述中,将以"中文"两个字为例,经查表可以知道其GB2312编码是"d6d0 cec4",Unicode编码为"4e2d 6587",UTF编码就是"e4b8ad e69687"。注意,这两个字没有iso8859-1编码,但可以用iso8859-1编码来"表示"。 ...
        对JSP的主要的优化是将JSP文件预编译,然而在某些时候预编译JSP是不可能的,例如当时候jsp-property-gourp功能的时候,这个时候Jasper Servlet的配置将会不稳定。         当时候Jasper2在生产环境下时,你需要修改Tomcat服务器下面的缺省设置: development - 设为false,当编译JSP页面时禁止检测JSP页面. genStringAsCharArray -设为 true.用于产生更有效率的char数组 modificationTestInterval - 如果development出于任何原因被设置成true,则尽量 ...
import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.HashMap; public class TestRef { public static void main(String[] args) throws Exception { TestRe ...
1、静态变量不能用范型 public class MyGen<T>{ private static T;//错误的 } 2、范型的定义不会被继承,若A是B的子类,C是一个声明了范型定义的类型,C(A)不是C(B)的子类 List<String> l = new ArrayList<String>(); List<Object> o = l;//错误的 3、范型函数的使用 public <T> void fromArrayToCollection(T[] a,Collection<T> c) ...
import static java.lang.annotation.ElementType.*; import java.lang.annotation.Documented; import java.lang.annotation.Inherited; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) pub ...
Global site tag (gtag.js) - Google Analytics