05 2013 档案
摘要:工厂方法模式定义:Define an interface for creating an object,but let subclass decide which class to instantiate.Factory Methode lets a class defer instantiate to subclass.工厂方法模式定义了一个创建方法的接口,但由子类决定要初始化的类是哪一个,工厂方法让类把实例化推迟到子类。两家PizzaStore,NYPizzaStore提供纽约风味的pizza,CHPizzaStore提供芝加哥风味的pizza:public abstract class
阅读全文
摘要:简单工厂并不算23种基本设计模式,应该算是一种编程习惯:public class PizzaStore { public Pizza orderPizza(String type){ Pizza pizza; if(null != type && type == "Greek"){ pizza = new GreekPizza(); }else if(null != type && type == "Cheese"){ pizza = new CheesePizza(); }else{ pizza = null; } re
阅读全文
摘要:java.io是使用Decorate Pattern设计的:其中FilterInputStream为Decorate Pattern中的Decorator,注意FilterInputStream即不是接口也不是抽象类,是一个实实在在的类,形如:public class FilterInputStreamextends InputStream{ protected InputStream in; protected FilterInputStream(InputStream in){ this.in = in; } ...}它的子类提供了很多“装饰”功能,如:BufferedInp...
阅读全文
摘要:装饰者模式定义:装饰者模式动态的将责任附加到对象上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案著名的咖啡屋示例,咖啡屋订单系统要求能够计算出每种咖啡的价格(个人感觉3种设计的主要差别在于抽象方式不同):总共有3种饮品(HouseBlend,Decaf,Espresso),2种配料(Mocha,Whip)设计一:(咖啡 = 饮品,咖啡+配料 = 饮品,在抽象的过程中并没有考虑咖啡和配料之间的关系)类太多,太复杂,如果增加一种饮品,增加一种配料,或者某一种饮品、配料的价格发生改变,要找到所有牵扯到的部分一一修改设计二:(配料抽象为饮品的属性)着实简洁了不少:public abstract
阅读全文
摘要:介绍一下jdk自带的观察者模式subject -> java.util.Observable(类)void addObserver(Observer o) 如果观察者与集合中已有的观察者不同,则向对象的观察者集中添加此观察者。 protected void clearChanged() 指示对象不再改变,或者它已对其所有的观察者通知了最近的改变,所以 hasChanged 方法将返回 false。 int countObservers() 返回 Observable 对象的观察者数目。 void deleteObserver(Obs...
阅读全文
摘要:观察者模式的定义:观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新考虑到如下一个场景,记者每次获得独家新闻,都需要通知人民日报和新华日报,Hi,i have a new message!public class SpecificRepoter { private PeopleDaily pd; private XinHuaDaily xd; private String msg; public Repoter(){ this.pd = new PeopleDaily(); this.xd = new XinhuaDaily(); ...
阅读全文
摘要:创建:create sequence seq_test minvalue 1 maxvalue 21 start with 1 increment by 1 cache 20 cycle order;minvalue 1 / nominvalue:最小值为1maxvalue 21 / nomaxvalue:最大值为21start with 1:从1开始计数increment by 1:每次增加1cache 20 / nocache: 缓存20个sequence值 / 不缓存 如果缓存,则会有跳号的危险:如果指定cache值,oracle就可以预先在内存里面放置一些sequence...
阅读全文
摘要:策略模式定义:策略模式定义了算法族,将算法分别封装起来,让他们之间可以互相替换。此模式让算法的变化独立于使用算法的客户一个包含多种角色的小游戏,如何设计角色类?设计一:public abstract class Character { public abstract void act();}public class King extends Character { public void act() { System.out.println("Charge!"); }}public class Knight extends Character { public void a
阅读全文
摘要:类之间大体分为5种关系:1,依赖关系(Dependency),单向public class Fork { public void useFork(){ System.out.println("Use fork to eat!"); }}public class People { public void eat(Fork fork){ fork.useFork(); }}如果A依赖于B,则B表现为A的局部变量,方法参数,静态方法调用等2,关联关系(Association),单向或双向,依赖关系的一种public class Product {}public class Ord
阅读全文
摘要:软件维护时间将要占软件生命周期的90%,说明软件的可扩展性是十分重要的遵守设计原则将会极大提高软件的可维护性和可扩展性,使我们有时间专注于更重要的部分每一个设计模式都体现了一个或多个设计原则:一,找出应用中可能变化之处,把他们独立出来,不要和那些不需要变化的代码混在一起(封装) 如果每次新的需求一来,都会使某部分的代码发生变化,那么就可以确定这部分代码需要被独立出来,和其他稳定代码有所区分 判断哪里将发生变化是很难的,特别要注意不要过度设计二,针对接口编程,而不是针对实现编程(解耦) 这里的接口不是单指interface,而是指超类型,超类型包含interface和abstract类三,多..
阅读全文
摘要:1,文件的默认权限是没有x的,即文件的最大默认权限为666(-rw-rw-rw)2,由于进入目录和目录的x权限有关,故目录的最大默认权限为777(drwxrwxrwx)查看默认权限需要使用umask命令:[123@123 ~]$ umask //数字方式显示0022[123@123 ~]$ umask -S //符号方式显示u=rwx,g=rx,o=rx以数字范式显示有4个数字,只看后3个即可,第一个为特殊权限使用[123@123 ~]$ touch test1[123@123 ~]$ ls -al test1-rw-r--r-- 1 123 123 0 05...
阅读全文
摘要:对linux来说,所有的程序或系统设备都是文件文件的访问方式分为3个类别:owner/group/other使用ls(short for list directorly content)命令可以查看文件详情:属性部分:第一个属性为文件类型:d:目录-:文件l:链接文件d:short for block,块设备,硬盘c:short for character,串行端口接口设备,键盘鼠标s:short for sockets,网络通信中使用p:short for ‘FIFO pipe’,first in first out管道,为了防止多个程序访问同一个文件而产生问题的特殊文件后面的属性则为不同访
阅读全文
摘要:问题说明:工程运行的时候偶尔会抛出Cannot get a connection, pool exhausted这个异常看这个提示信息比较明确了,无法获取数据库连接,连接池耗尽问题分析:首先看看tomcat的配置,是不是最大连接数过少:应该没问题,并发也不会超过100数据库也可以手动连接上,也不是数据库最大连接限制的问题上网查了下,发现查询连接未释放会出现这个问题,由于连接未释放,设置的最大并发数又比较小(100),很快连接就会被耗尽public List getQueryList(String sql) throws DAOException{ Session session = this.
阅读全文
摘要:jquery ui的combobox控件是一个即可根据输入自动显示匹配的选项,又可下拉显示所有选项的下拉框(支持中文):web页面:easyui test action:package com.test.action;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class AjaxAction extends ActionSupport{ private static final long...
阅读全文
浙公网安备 33010602011771号