`
文章列表

代理模式

1.代理模式 代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式来扩展该方法 举个例子来说明代理的作用:假设我们想邀请一位明星,那么并不是直接连接明星,而是联系明星的经纪人,来达到同样的目的.明星就是一个目标对象,他只要负责活动中的节目,而其他琐碎的事情就交给他的代理人(经纪人)来解决.这就是代理思想在现实中的一个例子 用图表示如下: 代理模式的关键点 ...

桥接模式

   在开始学java的时候老师讲到继承的时候,总是喜欢用一个例子来讲解,那就是画图,这里有一个画笔,可以画正方形、长方形、圆形(这个大家都知道怎么做吧,我就不解释了)。但是现在我们需要给这些形状进行上色,这里有三种颜色:白色、灰色、黑色。这里我们可以画出3*3=9中图形:白色正方形、白色长方形、白色圆形。。。。。。到这里了我们几乎到知道了这里存在两种解决方案:       方案一:为每种形状都提供各种颜色的版本。       方案二:根据实际需要对颜色和形状进行组合。       我们我们采用方案一来实现的话,我们是不是也可以这样来理解呢?为每种颜色都提供各种形状的版本呢?这个是完全的 ...

适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 我们通过下面的实例来演示适配器模式的使用。其中,音频播放器设备只能播放 mp3 文件,通过使用一个更高级的音频播放器来播放 vlc 和 mp4 文件。 介绍 意图:将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能 ...
抽象工厂模式,还是以汽车的制造为例。   例子背景: 随着客户的要求越来越高,宝马车需要不同配置的空调和发动机等配件。于是这个工厂开始生产空调和发动机,用来组装汽车。这时候工厂有两个系列的产品:空调和 ...

原型模式

原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象。本小结会通过对象的复制,进行讲解。在Java中,复制对象是通过clone()实现的,先创建一个原型类: public class Prototype implements Cloneable { public Object clone() throws CloneNotSupportedException { Prototype proto = (Prototype) super.c ...

单例模式

在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。 这样的模式有几个好处: 1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。 2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。 3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单例模式,才能保证核心交易服务器独立控制整个流程。 首先我们写一个简单的单例类: public class Singleton { /* 持有私有静态实例,防止被引用,此 ...

建造者模式

工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。我们看一下代码: 还和前面一样,一个Sender接口,两个实现类MailSender和SmsSender。最后,建造者类如下: public class Builder { private List<Sender> list = new ArrayList<Sender>(); public void p ...

工厂模式

简单工厂模式:一个抽象的接口,多个抽象接口的实现类,一个工厂类,用来实例化抽象的接口 // 抽象产品类 abstract class Car { public void run(); public void stop(); } // 具体实现类 class Benz implements Car { public void run() { System.out.println("Benz开始启动了。。。。。"); } public void stop() { Sys ...
设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。 上面是百度当中的解释,来解释一下这句简单的话的含义,几个关键词。     反复使用:这个不用过多解释,设计模式被 ...
Oracle sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。  1、Create Sequence  你首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限,  CREATE SEQUENCE emp_sequence      INCREMENT BY 1  -- 每次加几个 ...
create or replace PROCEDURE get_total ( skuprice out number ) IS price number; BEGIN get_sku_price('12345',price); skuprice := price; DBMS_OUTPUT.PUT_LINE('skuprice = ' || skuprice); END;     create or replace PROCEDURE get_sku_price (sku varchar2, price out number ) IS BEGI ...

XMLBEANS的使用

XMLBEANS的使用  http://youlong05.iteye.com/blog/87324 XMLBEANS生成Jar包下类的Package设置   <xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">  <xb:namespace>    <xb:package>com.thayer.fog.rate</xb:package>  </xb:namespace></xb:confi ...
 注意: union用法中,两个select语句的字段类型匹配,而且字段个数要相同   Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序; Union All:对两个结果集进行并集操作,包括重复行,不进行排序;  从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下: 尽量使用union all,因为union需要进行排序,去除重复记录,效率低。
    oracle.jbo.InvalidOwnerException: JBO-25030: Detail entity Td**** with row key null cannot find or invalidate its owning entity.             at oracle.jbo.server.EntityImpl.internalCreate(EntityImpl.java             at oracle.jbo.server.EntityImpl.callCreate(EntityImpl.java:1197)           ...
http://well-lf.iteye.com/blog/1831619   form表单的target,当将iframe设置为隐藏时,可以实现当前页表单提交而不进行跳转刷新。代码如下,首页在页面里准备一个form表单和一个iframe。 Java代码   <form action="提交的action" method="post" target="myIframe">   .....................  
Global site tag (gtag.js) - Google Analytics