部分与整体

类的六大关系之聚合关系

旧巷老猫 提交于 2020-03-19 02:58:54
废话少说,直接上工程目录 对应的UML图 代码: package com.waibizi; /** * 聚合表示的是整体与部分的关系,表示整体与部分是可分开的。聚合关系在类的六大关系中,排行的是第三。再重复一次顺序:设计模式中类的关系:依赖、关联、聚合、组合、继承、实现。耦合度依次递增 * @author 歪鼻子 * */ @SuppressWarnings("all") public class Computer { private Mouse mouse; //此处的mouse相对于Computer是一个部分与整体的关系,而mouse是可分开的 private Moniter moniter; //此处的moniter相对于Computer是一个部分与整体的关系,而moniter是可分开的 public Mouse getMouse() { return mouse; } public void setMouse(Mouse mouse) { this.mouse = mouse; } public Moniter getMoniter() { return moniter; } public void setMoniter(Moniter moniter) { this.moniter = moniter; } public static void main(String[]

设计模式:组合模式

孤人 提交于 2020-03-09 19:07:56
我们对于这个图片肯定会非常熟悉,这两幅图片我们都可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,当我们找到某个叶子节点后,就可以对叶子节点进行相关的操作。我们可以将这颗树理解成一个大的容器,容器里面包含很多的成员对象,这些成员对象即可是容器对象也可以是叶子对象。但是由于容器对象和叶子对象在功能上面的区别,使得我们在使用的过程中必须要区分容器对象和叶子对象,但是这样就会给客户带来不必要的麻烦,作为客户而已,它始终希望能够一致的对待容器对象和叶子对象。这就是组合模式的设计动机 :组合模式定义了如何将容器对象和叶子对象进行递归组合,使得客户在使用的过程中无须进行区分,可以对他们进行一致的处理。 一、 模式定义 组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。 组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元素(容器对象)的概念,使得客户能够像处理简单元素一样来处理复杂元素,从而使客户程序能够与复杂元素的内部结构解耦。 上面的图展示了计算机的文件系统,文件系统由文件和目录组成,目录下面也可以包含文件或者目录,计算机的文件系统是用递归结构来进行组织的,对于这样的数据结构是非常适用使用组合模式的。

设计模式之组合模式

时光总嘲笑我的痴心妄想 提交于 2020-03-09 18:57:27
转载自:http://www.cnblogs.com/chenssy/p/3299719.html 我们对于这个 图片肯定会非常熟悉,这两幅图我们可以看做是一个文件结构,对于这样的结构我们称之为树形结构。在数据结构中我们了解到可以通过调用某个方法来遍历整个树,在我们找到叶子节点后,就可以对叶子节点进行操作。我们可以将这棵树理解为一个大的容器,容器里面包含 许多的成员对象,这些成员对象既可以是容器对象,也可以是叶子对象。但是由于容器对象和叶子对象在功能上的区别,使得我们在使用过程中必须区分容器对象和叶子对象,但是这会给客户带来不必要的麻烦,客户希望能够一致对待容器对象和叶子对象。这就是组合模式的设计动机: 组合模式定义了如何将容器对象和叶子对象进行递归组合,使得客户在使用过程中无须进行区分,可以对他们进行一致处理。 一、 模式定义 组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。 组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶子对象)和复杂元素(容器对象)的概念,使得客户能够像处理简单元素一样来处理复杂元素,从而使客户程序能够与复杂元素的内部结构解耦。 上面的图展示了计算机的文件系统,文件系统由文件和目录组成,目录下面也可以包含文件或者目录

预测送达时间的模型工程化思路(学习记录)

走远了吗. 提交于 2020-02-01 05:00:00
文章目录 笔记 业务流程迭代中的模型改进 1.损失函数的选择 2.业务规则融入模型 3.缺失值处理 长尾问题优化 工程开发实践 1.训练实践部分 整体训练流程 数据并行训练方式 TF模型集成预处理 2.TF模型线上预测 笔记 今天在美团技术博客上学习了一下送达时间的预测模型工程化,记录一下。 ETA(Estimated Time of Arrival,“预计送达时间”),即用户下单后,配送人员在多长时间内将外卖送达到用户手中。送达时间预测的结果,将会以”预计送达时间”的形式,展现在用户的客户端页面上,是配送系统中非常重要的参数,直接影响了用户的下单意愿、运力调度、骑手考核,进而影响配送系统整体成本和用户体验。 ETA作为系统的调节中枢,需要平衡用户-骑手-商家-配送效率。从用户的诉求出发,尽可能快和准时,从骑手的角度出发,太短会给骑手极大压力。从调度角度出发,太长或太短都会影响配送效率。而从商家角度出发,都希望订单被尽可能派发出去,因为这关系到商家的收入。 对于ETA建模,不光是简单一个时间的预估,更需要的是全链路的时间预估,同时更需要兼顾”单量-运力-用户转化率”转化率之间的平衡。配送ETA的演变包括了数据、特征层面的持续改进,也包括了模型层面一路从LR-XGB-FM-DeepFM-自定义结构的演变。 业务流程迭代中的模型改进 与大部分CTR模型的迭代路径相似

Amdahl定律(阿姆达尔定律)

試著忘記壹切 提交于 2020-01-24 17:45:37
Amdahl 定律是计算机系统中的一个重要定律,核心思想是:我们对计算机系统的 某一部分 加速的时候,该加速部分对系统整体性能的影响取决于该部分的重要性和加速程度。也就是说,比如一个应用程序A,当系统执行他的时候所需要的时间是 T ,那么系统执行的时候可能是 好几部分 在执行他,假设系统 某一部分 执行所需要的时间为 t , t与T的比值是a (t / T = a,也就是说 t = aT), 而该部分性能提升了k倍,那么所需要的时间就变成了 t’ = aT / k 。这时候总的执行时间为 T ( 总 ) = T - t + t' = T - aT + aT / k = ( 1 - a ) * T + ( aT ) / k = ( 1 - a + a / k ) * T 这个时候,加速比就是:S = T / T(总) T 1 s = -- -- -- -- -- -- -- -- -- = -- -- -- -- -- -- -- - ( 1 - a + a / k ) * T ( 1 - a + a / k ) 假如说:系统中某个部分运行程序耗时比例为60%,他的加速因子为3(k = 3),那么我们可以获得的加速比为 1 / ( 1 - 0.6 + 0.6 / 3 ) = 1 / 0.6 = 1.6667 说明,我们对系统一个部分作出重要改进,提速三倍,但是整体的速度却只提速1

类之间的关系

╄→гoц情女王★ 提交于 2019-12-30 05:38:25
类之间的关系 1、关联关系 不同类的对象之间的结构关系,它在一段时间内将多个类的实例链接在一起。 关联体现的是实例之间的关系,而不表示两个类之间的关系。 2、依赖关系 两个类A和B,如果B的变化可能引起A的变化,则称A依赖于类B。依赖可以由各种原因引起,例如,一个类向另一个类发送消息、一个类是另一个类的数据成员、一个类是另一个类的某个操作参数等。 3、泛化关系 泛化关系描述类一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。 继承关系是泛化关系的反关系。子类继承类父类,而父类则是子类的泛化。 4、共享聚集(聚合) 共享聚集关系通常简称聚合关系,它表示类之间的整体与部分的关系。 含义 :“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不同。 例如:汽车和车轮就是聚合关系,车子坏了,车轮还可以用。车轮坏了,可以再换一个新的。 5、组合聚集(组合) 组合聚集关系通常简称为组合关系,它也是表示类之间的整体与部分的关系。与聚合关系的区别在于,组合关系中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创建而创建,也随着整体的消亡而消亡。 例如一个公司包含多个部门,他们之间就是组合关系。公司一旦倒闭,也就没有部门了。 6、实现关系。 实现关系说明和实现联系起来。接口是对行为而非实现的说明,而类中则包含类实现的结构

UML中的六大关系

痞子三分冷 提交于 2019-12-30 05:32:52
一、UML中的六大关系 在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)。 1.1、 继承关系—泛化(Generalization) 指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系;在Java中用extends关键字。 【泛化关系】是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:猫头鹰是鸟的一种,即有鸟的特性也有猫头鹰的共性。 【箭头指向】带三角箭头的实线,箭头指向父类。 【描述】上图中的类bird有嘴、翅膀、羽毛等属性。会飞、会唧唧喳喳的叫,那么就有这些方法。而猫头鹰有大眼睛和捕捉老鼠的本领,这则是自身的特性。 1.2、 实现关系(Realization) 指的是一个class类实现interface接口(可以是多个)的功能;实现是类与接口之间最常见的关系;在Java中此类关系通过关键字implements明确标识。 【实现关系】是一种类与接口的关系,表示类是接口所有特征和行为的实现. 【箭头指向】带三角箭头的虚线,箭头指向接口。 【描述

开荒笔记---UML类图之间的几种关系介绍

a 夏天 提交于 2019-12-30 05:31:54
最近在学习设计模式,在学习设计模式之前必须得能看懂类图,但是自己从来没有了解过UML知识,于是总结了此笔记给自己也给大家做一个参考 文章目录如下: 类图画法 类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)(又分一般关联、聚合(Aggregation)、组合(Composition))、依赖(Dependency) 一、类图画法 1、 类图的概念 A、显示出类、接口以及它们之间的静态结构和关系 B、用于描述系统的结构化设计 2、 类图的元素 类、接口、协作、关系,我们只简单介绍一下这四种元素。 同其他的图一样,类图也可以包含注解和限制。 类图中也可以包含包和子系统,这两者用来将元素分组。 有时候你也可以将类的实例放到类图中。 3、 类 A、 类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),见下图。 B、 类属性的语法为: [可见性] 属性名 [:类型] [=初始值] [{属性字符串}] 可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#” 类操作的语法为: [可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}] 可见性:公有

UML类图画法及类之间几种关系

流过昼夜 提交于 2019-12-30 05:31:19
文章目录如下: 一、类图画法 二、类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)(又分一般关联、聚合(Aggregation)、组合(Composition))、依赖(Dependency) 一、类图画法 1、 类图的概念 A、显示出类、接口以及它们之间的静态结构和关系 B、用于描述系统的结构化设计 2、 类图的元素 类、接口、协作、关系,我们只简单介绍一下这四种元素。 同其他的图一样,类图也可以包含注解和限制。 类图中也可以包含包和子系统,这两者用来将元素分组。 有时候你也可以将类的实例放到类图中。 3、 类 A、 类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),见下图。 B、 类属性的语法为: [可见性] 属性名 [:类型] [=初始值] [{属性字符串}] 可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#” 类操作的语法为: [可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}] 可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#”、包内公有(Package)“~”

UML类图画法及其之间的几种关系

无人久伴 提交于 2019-12-30 05:31:02
最近做重构项目,需要画一下类图,发现类图的画法及其之间的几种关系已经淡忘了很多,所以整理总结一下,有问题的地方大家可以一起讨论下。 类图画法 类之间的几种关系:泛化(Generalization)、实现(Realization)、关联(Association)(又分一般关联、聚合(Aggregation)、组合(Composition))、依赖(Dependency) 一、类图画法 1、 类图的概念 A、显示出类、接口以及它们之间的静态结构和关系 B、用于描述系统的结构化设计 2、 类图的元素 类、接口、协作、关系,我们只简单介绍一下这四种元素。 同其他的图一样,类图也可以包含注解和限制。 类图中也可以包含包和子系统,这两者用来将元素分组。 有时候你也可以将类的实例放到类图中。 3、 类 A、 类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation),见下图。 B、 类属性的语法为: [可见性] 属性名 [:类型] [=初始值] [{属性字符串}] 可见性:公有(Public)“+”、私有(Private)“-”、受保护(Protected)“#” 类操作的语法为: [可见性] 操作名 [(参数表)] [:返回类型] [{属性字符串}] 可见性:公有(Public)