
设计模式
baobeituping
积极,开朗,健康,向上.本人刚失恋,郁闷ING
展开
-
Lucene 索引文件格式详解
1.索引的SEGMENT 每个SEGMENT代表LUCENE的一个完成的索引段,通常,在一个索引中,会包含多个SEGMENT,每个SEGMENT都有统一的前缀,这个前缀是根据当前索引的DOCUMENT的数量而确立的。前缀名是DOCUMENT转成36进制后在前面加“_"组成。 通常在以个完成的索引中,只有一个SEGMENT文件。这个文件没有后缀,他记录了当前索引中所有的SEGMENT信息...原创 2010-12-19 15:47:53 · 185 阅读 · 0 评论 -
单例模式(懒汉式)
package 单例模式.懒汉模式;public class LazySingleton { private static LazySingleton m_instance; private LazySingleton(){} synchronized public LazySingleton getInstance() { if(m_instance == null) { m_ins...原创 2010-11-24 22:34:35 · 92 阅读 · 0 评论 -
单例模式(饿汉式)
单例模式是被限定只能有一个类的实例。饿汉式:package 单例模式.饿汉模式;public class EagerSingleton { private static final EagerSingleton m_instance = new EagerSingleton(); private EagerSingleton(){} public static EagerSinglet...原创 2010-11-24 22:31:53 · 96 阅读 · 0 评论 -
工厂模式(抽象工厂)
抽象工厂与工厂方法模式最大的区别在于,工厂模式针对的是一个产品的等级结构,而抽象工厂需要面对多个产品等级结构。例如上文中水果的例子。现在果园要扩大生产了,原来生产的是水果A和蔬菜A,现在要多出生产水果B和蔬菜B。对于这种方式我们就可以用到抽象工厂。水果总接口:package 工厂模式.抽象工厂;public interface Fruit { void grow(); void h...原创 2010-11-24 22:28:11 · 93 阅读 · 0 评论 -
工厂模式(工厂方法)
简单工厂的缺点就是扩展性不强,当有新的类型产生的时候,将对负责生产的主类进行修改。主类负责太多的业务逻辑,要避免这种情况的产生,就是将生产类功能抽象化。还是以上文中的水果为例子:水果接口:package 工厂模式.工厂方法;public interface Fruit { void grow(); void harvest(); void plant();}苹果:packa...原创 2010-11-24 21:55:42 · 83 阅读 · 0 评论 -
工厂模式(简单工厂)
简单工厂模式就是一个工厂类根据传入的参量决定创建出哪一种产品类的实例。简单工厂模式涉及到工厂角色,抽象产品角色以及具体产品角色等三个角色:1。工厂类角色:担任这个角色的是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,他往往由一个具体的JAVA类实现。2。抽象产品角色:担任这个角色的类是由工厂方法模式所创建的对象的父类,或他们共同拥有的接口。抽...原创 2010-11-21 22:45:20 · 106 阅读 · 0 评论 -
装饰模式
应用实例,餐厅要实现扩展化管理。对于饮料实现多品种加工。首先定义一个饮料的基类,然后在该基类中定义所有饮料品种计算价格的方法,然后其他饮料通过继承该类,从而可以得到自己饮料的计算方式。这种设计存在的问题也是很明显的,如果某一种饮料的价格发生了变化,那么就必须对基类进行修改。如果存在某一品种的饮料要进行两次算价格的话。就不是很方便了。 我们采用装饰者模式的方式,首先还是定义一个基...原创 2011-05-03 23:03:39 · 87 阅读 · 0 评论 -
观察者模式
观察者模式,主要用的场景例子:某一个气象站,他提供一个数据访问接口,然后有许多其他的气象站要根据气象站提供的数据进行显示。例如:气象总站获取数据的类。package 观察者模式;import java.util.ArrayList;import java.util.List;public class WeatherData { public float temp; publ...原创 2011-05-02 22:43:59 · 75 阅读 · 0 评论 -
Lucene 搜索方法(QueryParser)
该类可以根据用户的输入来进行解析,自动构建合适的QUERY。代码:public static void main(String[] args) { try { String field = "bookname"; String queryStr = "钢 铁"; QueryParser parser = new QueryParser(field, new StandardA...原创 2010-12-20 21:11:02 · 165 阅读 · 0 评论 -
单例模式总结
单例模式的使用有一个必要的条件,在一个系统要求一个类只有一个实例时才应当使用单例模式。在懒汉式单例的时候为什么要进行线程的控制呢?package 单例模式.懒汉模式;public class LazySingleton { private static LazySingleton m_instance; private LazySingleton(){} synchronized pu...原创 2010-11-24 22:48:24 · 77 阅读 · 0 评论