创建型:单例模式 发表于 2017-06-04 | 分类于 设计模式 单例模式(Singleton Pattern):保证一个类只有一个实例,并提供一个访问它的全局访问点。 单例模式的要点: 类只能有一个实例。 必须自行创建这个实例。 必须自行向整个系统提供这个实例。 实现单例模式的要素: 私有的构造器 一个静态方法 一个静态变量 优点 单例模式提供了 ... 阅读全文 »
创建型:简单工厂模式、工厂方法模式和抽象工厂模式 发表于 2017-06-04 | 分类于 设计模式 工厂模式可以将对象的创建封装起来,以便于得到更松耦合,更有弹性的设计。所有工厂模式都通过减少应用程序和具体类之间的依赖促进耦合。 1.针对抽象编程,而不要针对具体类编程。2.依赖倒置原则,指导避免依赖具体类型,而要尽量依赖抽象。 简单工厂模式简单工厂模式不属于 GoF 23个经典设计模式。 简 ... 阅读全文 »
设计模式概述和面向对象的设计原则 发表于 2017-06-04 | 分类于 设计模式 使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 分类 创建型模式,共 5 种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共 7 种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共 11 种:策略模式、 ... 阅读全文 »
UML 类图 发表于 2017-06-04 | 分类于 UML Vehicle接口的实现类Car和Bicycle:实现关系(纵向)。 SUV继承Car:泛化关系(纵向)。 Car拥有Tyre和Engine:组合关系(横向)。 School和Student:聚合关系(横向)。 Student和IdCard:关联关系(横向)。 Student和Bicycle:依 ... 阅读全文 »
StarUML破解 发表于 2017-06-04 | 分类于 UML 1.更改文件 LicenseManagerDomain.js路径:StarUML安装目录\www\license\node\LicenseManagerDomain.js 替换LicenseManagerDomain.js中的function validate()。12345678910111213 ... 阅读全文 »
索引过程分析 发表于 2017-06-03 | 分类于 Lucene Lucene3 中的索引过程设计很多对象,分别负责索引文档的不同部分的信息,同时也注重复用一些对象集。索引过程中涉及3种索引链:基本索引链、线程索引链、域索引链。 IndexWriterIndexWriter 对象主要包括几方面的信息:1.用于索引文档 成员 描述 Directory ... 阅读全文 »
词典和倒排表信息 发表于 2017-05-29 | 分类于 Lucene 反向信息也就是反向索引,包括词典(Term Dictionary)和倒排表(Posting List)。这两部分分别存在 .tii、.tis和.frq、prx中。 词典term 是根据 term’s field name 和 term text 进行字典排序。 IndexReader.open() ... 阅读全文 »
词向量的元数据和数据信息 发表于 2017-05-28 | 分类于 Lucene IndexReader.getTermFeqVector() -> DirectoryReader.getTermFreqVector() -> SegmentReader.getTermFreqVector() -> TermVectorsReader.get() Term Ve ... 阅读全文 »
域的元数据信息和数据信息 发表于 2017-05-28 | 分类于 Lucene 元数据 .fnmIndexReader.open() -> DirectoryReader.open() -> FindSegmentsFile.run() FindSegmentsFile.doBody() -> new DirectoryReader() -> Segme ... 阅读全文 »
段的元数据信息 发表于 2017-05-28 | 分类于 Lucene segments.gen和segments_N保存了段的元数据信息,索引有多少个段,每个段有多少篇文档。而段的真正的数据信息是保存在域(Field)和词(Term)中的。 一个索引只有一个segments.gen,而segments_N可能有多个。 IndexReader.open() -> ... 阅读全文 »