智乐兔

解决方案

  • 决定人工智能未来的三大关键难题

    决定人工智能未来的三大关键难题

    科幻作品中我们经常能够看到与人类一样聪明的机器人,但机器是如何在这背后存储知识的?是如何推理知识并运用知识的?最后又是如何实现与人的交互的?此次在的百度BIG大会上,百度技术副总王海峰博士总结了实现人工智能的三大关键技术,基本回答了这些问题,虽然讲的比较简单,但由于信息量过大没有一定背景的人是很难听懂的,所以我纯粹来给各位科普下。 关键一,让机器理解语言的技术 理解语言是一个从词语逐渐递进到事件的过程。 1,分词技术 让机器理解语言,也就是要让机器学会自己思考,那么就需要让机器去理解语言。而汉语的 理解与英语相比起来就显得更加困难,在英语中每个单词都是基本上可以被机器直接读取的,但是汉语在 ...

    查看全文

  • 里氏代换原则(LSP)

    里氏代换原则(LSP)

    从“开-闭”原则中可看出面向对象设计的重要原则是创建抽象化,并且从抽象化导出具体化。具体化可以给出不同的版本,每一个版本都给出不同的实现。 从抽象化到具体化的导出要使用继承关系和里氏代换原则(Liskove Substitution Principle,常缩写为LSP)。 里氏代换原则的定义:如果对每个类型为t1的对象o1,都有类型为t2的对象o2,使得以t1定义的所有程序p在所有的对象o1都代换成o2时,程序p的行为没有变化,那么类型t2是类型t1的子类型。 一个软件实体可以使用基类的时候,也可以使用其子类。 里氏代换原则是继承复用的基石。只有当衍生类可以替换掉基类,软件单位的功能不会受到影 ...

    查看全文

  • Java抽象类解析

    Java抽象类解析

    Java语言里类分两种:具体类,抽象类。具体类可以实例化,抽象类不可以。 抽象类仅能提供一个类型的部分实现。可以有实例变量,以及一个或以上的构造方法。 可以同时拥有抽象方法和具体方法。 构造方法不能被客户端调用来创建实例,可以被子类调用,共享抽象类的实现并且子类可以在此基础上追加自己的实现。 抽象类、子类的关系时模板方法模式的应用。 抽象类代表抽象概念,提供继承的出发点。 具体类不是用来继承的,原则上,只要有可能,不要从具体类继承。 在一个继承关系形成的等级结构里面,树叶节点均应当使具体类,而树枝节点均应当使抽象类(或者Java接口)。 上图代码重构的例子就是里氏代换原则。 抽象类应当拥有 ...

    查看全文

  • 系统设计中的接口

    系统设计中的接口

    接口是实现系统组件可插入性的关键。 接口是一般操作特征的集合,从具体操作中来,具有操作的特征,没有操作的具体实现,这些特征在不同的地方被实现时,可以恰当地自由发挥。 JAVA语言有专门的Java接口来描述这种接口。 使用接口时要声明接口本身和实现该接口的类。一个类实现一个接口,这种关系叫做接口继承;一个类是另一个类的子类,这种关系叫做实现继承。Java中一个类有且仅有一个父类(默认继承Object类),但是可以同时实现多个接口。 接口是高度的抽象,Java接口拥有专门的用处,可以提供抽象类所不能提供的优越。 接口仅描述公共操作的特征以及公共属性,不给出具体实现,常常代表一个角色,包装与该接口 ...

    查看全文

  • 何时将条件转移语句改写为多态性

    何时将条件转移语句改写为多态性

    将条件转移语句改写为多态性是常用的代码重构方法。将一个进行多次条件转移的商业逻辑封装到不同的具体子类中去,从而使用多态性代替条件转移语句。 这种代码重构的方法是实现“开-闭”原则的重要途径,因为条件转移语句特别是大段的条件转移语句常意味着某种可变性。将这种可变性用多态性代替,意味着将这种可变性封装起来,从而带来系统在这种变化发生时的“开-闭”特性。 但是这种方法本身并不能保证实现“开-闭”原则,应当以“开-闭”原则为指导原则。因为: 任何语言都提供条件转移功能,条件转移本身并不是错误的,有适合的应用场景。 使用多态性代替条件转移意味着大量的类被创建。比如,一个类如果有三个方法,每个方法都有一 ...

    查看全文

  • 系统架构设计中的开-闭原则(OCP)

    系统架构设计中的开-闭原则(OCP)

    经典力学的基石是牛顿三大定律。面向对象的设计(Object Oriented Design 或 OOD)的第一块基石,便是所谓的“开-闭”原则(Open-Closed Principle,缩写为OCP)。 开-闭原则讲的是:一个软件实体应当对扩展开放,对修改关闭。 Software entities should be open for extension,but closed for modification. 在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。应当可以在不必修改源代码的情况下改变这个模块的行为。 软件系统面临新得需求时,系统的设计必须是稳定的。满足开-闭原则 ...

    查看全文

  • 建造者模式(设计模式)

    建造者模式(设计模式)

    1.概念 将一个复杂的对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]     与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。   举个简单的例子,如汽车,有很多部件,车轮,方向盘,发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配 ...

    查看全文

  • 设计模式(结构类)-桥梁模式

    设计模式(结构类)-桥梁模式

    桥梁模式(Bridge Patter)也叫做桥接模式,是一个比较简单的模式。 定义: 将抽象和实现解耦,使得两者可以独立地变化。 通用类图:   ● Abstraction——抽象化角色 它主要的职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。 ● Implementro——实现化角色 它是接口或者抽象类,定义角色必须的行为和属性。 ● RefinedAbstraction——修正抽象化角色 它引用实现化角色对抽象化角色进行修正。 ● ConcreteImplementor——具体实现化角色 它实现接口 ...

    查看全文

  • 软件的可维护性与可复用性

    软件的可维护性与可复用性

    可维护性和可复用性是两个独立的目标,对面向对象的软件系统设计来说,在支持可维护性(Maintainability)的同时,提高系统的可复用性(Reuseability)是一个核心的问题。 软件系统的可维护性 维护中的软件是一个不断再生的软件,就像一个“不断带来新礼物的礼物”。 好的软件设计,允许新的设计要求以较为容易和平稳的方式加入到已有的系统中去,从而使这个系统能不断焕发青春。 一个可维护性较好的系统,允许维护工作能够以容易、准确、安全和经济的形式进行。 典型的软件生命周期 系统设计师拿到系统的设计要求,开始进行系统设计。 从存在于设计者们的头脑中,到存在于设计图纸上,然后变成一个原型系统, ...

    查看全文

  • 面向对象的设计原则

    面向对象的设计原则

    面向对象设计要解决的核心问题是:同时提高一个软件系统的可维护性(Maintainability)和可复用性(Reuseability)是面向对象的设计要解决的核心问题。 设计模式的应用,可以加深对面向对象设计理念的理解,帮助设计者改善自己的系统设计。但是,设计模式并不能提供具有普遍意义的设计指导原则。在诸多孤立的设计模式背后应当还有一些更为深层的、更具有普遍性的、共同的思想原则。 如开-闭原则,这样的面向对象的设计原则就是这些设计模式中不断显现出来的共同思想原则,它们是隐藏在设计模式背后的、比设计模式本身更加基本和单纯的设计思想。 ...

    查看全文

  • UML及建模的工具

    UML及建模的工具

    一个好的OO设计工具可以双向工作,既可以从代码生成UML图,也可以从UML图生成代码;根据时序图自动给出合作交互图,或者根据合作交互图自动给出序列交互视图等。这样的工具包括如下内容: Rational Rose Together Microsoft Visio Visual UML Model Bridge MicroGold WithClass QuickUML Visio在运行时的情形如下图所示。   Rational Rose工作界面: Together把Java IDE和OO设计建模工具合二为一,用户可以同时看到UML图和Java源代码,修改UML图会使得源代码得到 ...

    查看全文

  • UML语言-状态图

    UML语言-状态图

    状态图(State Diagram)又称作状态转换图(State Transition Diagram)。状态图的基本想法是定义一个具有有限个内部状态的机器,因此状态图又称作有限状态机。对象被外界的事件激发,从而从一个状态转换到另一个状态。 考虑汽水装瓶机上的汽水瓶子的例子。对象是瓶子,装瓶机器是外部环境。首先,一个空瓶子在传送带上被送到装瓶机龙头下面,此时瓶子是空的。如图所示: 图中的黑点表示起始状态,方框表示瓶子的状态,可以看出瓶子没满,处在未满状态。从起始状态到未满状态、有箭头的连线表示状态的过渡。过渡连线的标签通常分为两部分由一个斜线分开,斜线的第一部分是引起过渡的事件,第二部分是 ...

    查看全文

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微