Topic Model的分类和设计原则 http://blog.csdn.net/xianlingmao/article/details/7065318 topic model的介绍性文章已经很多,在此仅做粗略介绍,本文假设读者已经较为熟悉Topic Medel. Topic Model (LDA)认为一个离散数据集合(如文档集合,图片集合,为行文方便,本文统统以文档集合作为描述对象,其他的数据集合只需换掉对应的术语即可)是由隐含在数据集合背后的topic set 生成的,这个set中的每一个t…
1 设计模式概述 1.1 软件设计模式的产生背景 "设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中. 1977年美国著名建筑大师.加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫·亚历山大(Christopher Alexander)在他的著作<建筑模式语言:城镇.建筑.构造>中描述了一些常见的建筑设计问题,并提出了 253 种关于对城镇.邻里.住宅.花园和房间等进行设计的基本模式. 1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式…
一.概要 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结. 使用设计模式的目的:为了代码可重用性.让代码更容易被他人理解.保证代码可靠性. 设计模式使代码编写真正工程化:设计模式是软件工程的基石脉络,如同大厦的结构一样.可复用.可扩展.可维护 设计模式是GOF(Group Of Four Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides )所著的<设计模式:可复用面向对象软件的基…
今天我们一起来聊聊关于设计原则相关的知识点. SOLID五大原则是什么 SRP 单一责任原则 单一责任原则,从名字上我们就能比较好的去理解它.这项原则主张一个对象只专注于单个方面的逻辑,强调了职责的专一性. 举个例子: 学生管理系统中,我们需要提交一些学生的基本资料,那么学生信息相关的程序都交给了StudentService负责,如果我们要实现一个保存教师基本资料的功能就应该新建一个TeacherService去处理,而不应该写在StudentService当中. OCP开放封闭原则 这项原则从…
设计原则 城堡游戏 扩展 字符串被分割 String line = in.nextLine(); String[] words = line.split(" "); 消除代码复制 消除代码复制的两个基本手段,就是函数和父类 封装 用封装来降低耦合 封装的意思是,类自己对自己的成员变量进行一些操作 类和类之间的关系称作耦合 耦合越低越好,保持距离是形成良好代码的关键 扩展 StringBuffer可以用于进行复杂的字符串的操作去产生一个结果字符串的时候 可扩展性 代码的某些部分不需要经过…
一.总体来说设计模式分为三大类: 创建型模式:对象的创建. 创建对象本身是比较耗时的操作,所以我们这里专门找人来帮我们创建对象,我们根据经验总结出来的设计成熟的思路模式. 结构型模式:对象的组成(结构). 行为型模式:  对象的行为. 创建型模式,共六种:简单工厂模式,工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组合模式.享元模式. 行为型模式,共十种:模版方法模式.观察者模式.状态模式.职责链模式.命令…
一.OCP简介(OCP--Open-Closed Principle):Software entities(classes,modules,functions,etc.) should be open for extension, but closed for modification.软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改(在.Net当中可能通过代理模式来达到这个目的)的前提下扩展.Open for extension:当新需求出现的时候,可以通过扩展现有模型达到目的. C…
一.SRP简介(SRP--Single-Responsibility Principle): 就一个类而言,应该只专注于做一件事和仅有一个引起它变化的原因.   所谓职责,我们可以理解他为功能,就是设计的这个类功能应该只有一个,而不是两个或更多.也可以理解为引用变化的原因,当你发现有两个变化会要求我们修改这个类,那么你就要考虑撤分这个类了.因为职责是变化的一个轴线,当需求变化时,该变化会反映类的职责的变化. “就像一个人身兼数职,而这些事情相互关联不大,,甚至有冲突,那他就无法很好的解决这些职责…
一.ISP简介(ISP--Interface Segregation Principle): 使用多个专门的接口比使用单一的总接口要好.一个类对另外一个类的依赖性应当是建立在最小的接口上的.一个接口代表一个角色,不应当将不同的角色都交给一个接口.没有关系的接口合并在一起,形成一个臃肿的大接口,这是对角色和接口的污染.   “不应该强迫客户依赖于它们不用的方法.接口属于客户,不属于它所在的类层次结构.”这个说得很明白了,再通俗点说,不要强迫客户使用它们不用的方法,如果强迫用户使用它们不使用的方法,…
一.LSP简介(LSP--Liskov Substitution Principle): 定义:如果对于类型S的每一个对象o1,都有一个类型T的对象o2,使对于任意用类型T定义的程序P,将o2替换为o1,P的行为保持不变,则称S为T的一个子类型. 子类型必须能够替换它的基类型.LSP又称里氏替换原则. 对于这个原则,通俗一些的理解就是,父类的方法都要在子类中实现或者重写.   二.举例说明: 对于依赖倒置原则,说的是父类不能依赖子类,它们都要依赖抽象类.这种依赖是我们实现代码扩展和运行期内绑定(…