展开

关键词

GRASP

在OO分析与中,我们首先从问题领域中抽象出领域型,在领域型中以适当的粒度归纳出相关的类;然后定义各个类之间的关联关系,并给这些类分配相应的职责,同时定义这些类之间的协作方GRASP是职责分配过程中的一套非常重要的。 它给出了在给类分配职责的过程中,者们所需要遵从的一些原则或者指导性的建议     GRASP不是平时说的GoF(Gang of Four)的23种GRASP描述的是在OO中为互相协作的类分配职责的原则或者建议,而GoF的则是在更高的层次上描述一个OO系统或者其局部系统的行为以及结构上的抽象。 GRASP的全称是General Responsibility Assignment Software Patterns,即通用职责分配软件

29020

OOAD-(二)之GRASP与GOF概述

二、GRASP的分类   作用则重点:完成责任分配(以及分配责任的时候需要注意的点)   GRASP也是遵循基本的原则的(也就是说GRASP是在基本原则基础之上建立的)。 三、COF概述    作用则重点:代码的结构完成的功能(以及这种结构的代码能解决哪一类问题)   GOF是遵循着GRASP的(也就是说GOF是在GRASP基础之上建立的)  GOF分为 这本书中介绍了23种,虽然其实不止这23种,但是由于这23种太常用了,所以我们一般说到,就是指GoF的23种。 四、GOF分类概述   创建型,共五种:工厂方法、抽象工厂、单例、建造者、原型。    4.3.11、解释器     接下来将慢慢的介绍这些了!喜欢就点个“推荐”哦!

531100
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年50元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    机器人抓取汇总|涉及目标检测、分割、姿态识别、抓取点检测、路径规划

    然而,分析方法存在着费时、算困难等问题。随后,随着大量三维型的出现,可以分析数据驱动的方法,将三维型数据库中的抓取转移到目标对象。 姿态估方法大致可分为四种,分别基于对应、板、投票和回归。 1、不基于目标检测先验信息基于对应方法:在2D点和3D点之间找到匹配,并使用PNP方法:SIFT、SURF、ORB通过随机假或三维描述寻找三维对应关系,并使用ICP对结果进行细化:FPFH、SHOT基于板方法 运动规划1、已有抓取点本节介绍开环方法,其中假抓取点已通过上述步骤检测到。这些方法了从机器人手到目标物体抓取点的路径。这里运动表示是关键问题。 主要有三种方法,如传统的基于DMP的方法、仿学习的方法和基于强化学习的方法。基于DMP的方法:主要包括DMP算法。形化为稳定的非线性吸引子系统。

    2.5K20

    --原型

    1.概念:原型(Prototype Pattern)是通过给出一个原型对象来指明所要创建的对象类型,然后用复制这个原型对象的办法创建出更多的同类对象,同时又能保证性能而且不需要知道内部细节。 这种类型的属于创建型,它提供了一种创建对象的最佳方。这种是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种。 通过 new 产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型。一个对象多个修改者的场景。 一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,可以考虑使用原型拷贝多个对象供调用者使用。 在实际项目中,原型很少单独出现,一般是和工厂方法一起出现,通过 clone 的方法创建一个对象,然后由工厂方法提供给调用者。原型已经与 Java 融为浑然一体,大家可以随手拿来使用。

    22440

    --策略

    策略策略的用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略使得算法可以在不影响到客户端的情况下发生变化。使用策略可以把行为和环境分割开来。 策略相当于可插入(Pluggable)的算法。在策略中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。 策略和简单工厂的结合:把分支判断放到环境角色中。 讲解策略功能:把具体算法从具体业务处理中独立 策略与if-else语句:多个if-else出现考虑使用策略 算法的平等性:策略算法是形同行为的不同实现 谁来选择具体策略算法:客户端;由上下文来选择具体的策略算法 目前是一名在校大学生,预考研,热爱编程,热爱技术,喜欢分享,知识无界,希望我的分享可以帮到你! 如果有什么想看的,可以私信我,如果在能力范围内,我会发布相应的博文! 感谢大家的阅读!?

    10920

    --板方法

    -----------------------------------------------------------------深入浅出的 板方法(Template Method Pattern 板方法是基于继承的代码复用的基本技术,板方法的结构和用法也是面向对象的核心。板方法的本质:抽象封装流程,具体进行实现 版方法需要开发抽象类和具体子类的师之间的协作。 代表这些具体逻辑步骤的方法称做基本方法(primitive method)将这些基本方法总汇起来的方法叫做版方法(template method),这个的名字就是从此而来。 多个子类有公有的方法,并且逻辑基本相同时;重要,复杂的算法,可以把核心算法板方法,周边的相关细节功能则由各个子类实现;重构时,板方法 是一个经常使用的,把相同的代码抽取到父类,然后通过钩子函数约束其行为 最后,给出的是一种框架,而不是条条框框,你需要用的是他真正优秀的地方!开发实例?

    22120

    之原型

    最近买了一本的书籍看了看,发现自己对没有什么概念,同时,在看某些的时候发现在项目中应用了不少,但是是哪个却说不明白!! 不扯皮,今天记录的是原型,java中天然支持原型,也就是在jdk层面就支持这个了(clone),代理也是(Proxy)。 难怪java天然支持拷贝型。话说回来,在java中如果实现克隆对象,要有两个标准必须要实现人家自带的Cloneable接口必须要重写clone方法。 CloneNotSupportedException e){ e.printStackTrace(); } return null; } 对,没错,这里我们在点到ArrayList源码看一下,它是有实现clone方法的image.png至此,原型的栗子就举完毕了 原型使用场景在使用多个对象但又不便于创建多个对象所承担的消耗的时候,可以使用克隆通过new一个对象的时候需要很繁琐的进行数据准备,可以使用原型对当前对象进行重复修改(一个对象多个修改者的场景)

    9710

    -- 常用

    介绍分类6大原则1.介绍(Design Patterns)                                  ——可复用面向对象软件的基础 使用是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,于己于他人于系统都是多赢的,使代码编制真正工程化,是软件工程的基石,如同大厦的一块块砖石一样。 分类经典的《》一书归纳出23种,这23种又可归为,创建型、结构型和行为型3大类2.1.创建型前面讲过,社会化的分工越来越细,自然在软件方面也是如此,因此对象的创建和对象的使用分开也就成为了必然趋势 对象结构的很容易体现出人员水平的高低,这里有7个具体的结构型可供研究,它们分别是:外观(Facade);适配器(Adapter);代理(Proxy);装饰(Decorator 工厂工厂(Factory Pattern)是 Java 中最常用的之一。这种类型的属于创建型,它提供了一种创建对象的最佳方

    53110

    《单例

    第一种 : 饿汉单例** * Copyright © 2019 eSunny Info. Tech Ltd. Copyright: Copyright (c) 2019 ZuoYanCoder13 * 14 * @ClassName: SingletonLazy.java15 * @Description: 懒汉单例 SingletonLazy.class) {37 single= new SingletonLazy();38 }39 }40 return single;41 }42 43 }第三种 静态内部类实现单例 SingletonStaticInnerClass getSingletonInstance(){42 return SingletonClassInstance.instance;43 }44 45 }常见的五中单例实现方 序列化_绕过单例的解决方案?使用多线程测试不同单例实现方法的效率问题?效率时间比较?

    14350

    共享抓取的操纵(CS RO)

    核心问题是评估可行的接触:对于每个接触,该接触是否会保持活跃,以及是否会发生滑移。稳健性很重要。 当一个接触失败时,例如,当一个接触丢失时,或者当无意的滑移发生时,操作将失败,在某些情况下可能会发生损坏。在这项工作中,我们列举了所有可行的接触算相应的控制,并选择最稳健的候选人。 原文题目:Manipulation with Shared Grasping原文:A shared grasp is a grasp formed by contacts between the manipulated By trading off hand contacts for environmental contacts, a shared grasp requires fewer contacts with the hand, and enables manipulation even when a full grasp is not possible.

    19420

    大盘点|基于RGB图像下的机器人抓取

    除此之外发布了Jacquard+,它是Jacquard数据集的一个扩展,允许在一个可变装饰上放置多个对象的拟场景中评估抓取检测型。 2、Real-time Grasp Pose Estimation for Novel Objects in Densely Cluttered Environment现有抓取方主要为从物体的质心抓取以及沿物体的长轴抓取 ,但是这类方对复杂形状物体常常失败。 CNN识别分布用于第二阶段的生成性多假优化,这种优化是作为一个静态过程的粒子滤波器来实现的。 4、Domain Independent Unsupervised Learning to grasp the Novel Objects本文提出了一种基于无监督学习的可行抓取区域选择算法,监督学习在没有任何外部标签的情况下推断数据集中的

    25410

    大盘点|基于RGB图像下的机器人抓取

    除此之外发布了Jacquard+,它是Jacquard数据集的一个扩展,允许在一个可变装饰上放置多个对象的拟场景中评估抓取检测型。 2、Real-time Grasp Pose Estimation for Novel Objects in Densely Cluttered Environment现有抓取方主要为从物体的质心抓取以及沿物体的长轴抓取 ,但是这类方对复杂形状物体常常失败。 CNN识别分布用于第二阶段的生成性多假优化,这种优化是作为一个静态过程的粒子滤波器来实现的。 4、Domain Independent Unsupervised Learning to grasp the Novel Objects本文提出了一种基于无监督学习的可行抓取区域选择算法,监督学习在没有任何外部标签的情况下推断数据集中的

    17620

    java之工厂

    工厂: 这里用百度百科的词条来解释: 工厂是我们最常用的实例化对象了,是用工厂方法代替new操作的一种。 著名的Jive论坛 ,就大量使用了工厂,工厂在Java程序系统可以说是随处可见。因为工厂就相当于创建实例对象的new,我们经常要根据类Class生成实例对象。 在我们java生态中,spring对工厂运用的可算是极致了,顶级类BeanFactory是bean的最顶级的工厂类... 在这里,我拟一下工厂: 先说一下工厂需要的角色: 机器? 试想,天下的面条种类那么多,工厂是非常容易扩展的,实现思路即java的“多态” 这里,就已经实现了一个简单的工厂,即简单工厂 当你的宝马机器生产宝马的时候,这个时候只需要拓展Machine类即可 Object())); machine = new BMWMachine(); System.out.println(machine.create(new Object())); } 这就是java的工厂

    18740

    java之代理

    张三想要去日本某公司买xxx,但是对于经费等等一系列的原因然后就放弃了这个念头,我刚好要去日本玩的,张三得知我要去日本,他就偷偷给我说,他想要一个size为D的...

    14630

    之:单利

    什么是单例 所谓单例,其实就是确保类的实例对象只存在一个,并且将这个实例对象向外界提供出去。 单例的三种写法 (1) 饿汉package com.demo; public class DanLi_01 { private DanLi_01() {} private static final 我们很容易就可以发现,它跟饿汉相比,它没有饿汉那么饥渴,当类加载的时候,不会去创建对象,只有当我们调用获取实例的方法的时候,它会去做判断,如果不为null,表示对象已经创建,直接返回,如果为null 大家可能已经看出来了,就第一种方和第二种方之间如果做一个选择,大家可能都会选择第二种写法,我们再来看看第二种写法,细心的朋友可能看到我在方法上加了一个关键字synchronized,那么为什么要加这个关键字呢 单例的特点1、从代码中不难看出,必须私有构造器,因为外部不能直接new我们的对象,只能通过方法获得;2、实例对象在应用中只存在一个;3、单利必须把这个实例提供给其他对象;

    9620

    05 原型

    原型原型:顾名思义,通过一个原型来建立对象。 因为有些对象过于庞大,通过new关键字创立十分消耗资源,故采用原型,可以理解为克隆 在Java中原型主要靠clone()方法进行 进行clone需要注意的点: 类本身需要实现Cloneable 一般在使用时,原型并不会单独使用,会与工厂相结合,更加高效地创建对象

    13420

    面向对象的九大基本原则 (GRASP)

    GRASP,职责分配软件,General Responsibility Assignment Software Patterns,】,是面向对象和职责分配中的九个基本原则,最早是在克雷·拉蒙1997 这些都是针对软件开发上的一些问题进行解决。发明这些技巧不是为了要创造新的工作方,而是为在面向对象上,旧的,经过测试的程序创建文档并且标准化。 克雷·拉蒙提到:“软件开发最关键的工具不是UML或其他的技术,是明了原则的心智。”:272。因此,GRASP原则是心理层面的工具集,在面向对象软件学习上的辅助工具。 在面向对象中,是针对问题以及其解决方案一个有命名的描述方,可以应用在不同的情境中。理想的可以让程序开发者知道要如何将解决方案应用在不同的环境下,并且进行取舍。 在信息系统逻辑架构的面向对象系统中,若应用程序在应用层服务层和业务逻辑之间有明确的分隔,GRASP控制器可以视为是应用层或是服务层的一部分。相关或原则:命令、外观、层、纯虚构。

    5220

    033android初级篇之android的Observer

    android中的Observer,是继承自java的实现,使用Observable类和Observer实现。 JDK里提供的observer的实现由java.util.Observable类和 java.util.Observer接口组成。 从名字上可以清楚的看出两者在Observer 中分别扮演的角色:Observer是观察者角色,Observable是被观察目标(subject)角色。 遵守大部分GRASP原则和常用原则,高内聚、低耦合。observer的缺点松耦合导致代码关系不明显;如果一个Subject被大量Observer订阅的话,在广播通知的时候可能会有效率问题。 GRASP (职责分配原则)

    85840

    】Java板方法

    转载请注明出处:http:chenhaoxiang.cn 本文源自【人生之旅_谙忆的博客】 板方法初探我们先这样来想象一个生活中的场景, 就是我们在银行柜台进行办理业务的时候,会进行这几步: Step1 :进门取号 Step2:填写单据 Step3:等待叫号 Step4:窗口办理 在这里,无论是你我还是他她,都会遵循这个板进行业务的办理! 现在我们再继续看下去 ----什么是板方法板方法是类的行为。准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。 不同的子类可以以不同的方实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是板方法的用意。 比如定义一个操作中的算法的骨架,将步骤延迟到子类中。 ----板方法的代码实现具体子类实现延迟步骤package com.chenhaoxiang.template; ** * 抽象基类 为所有子类提供一个算法框架 * * 提神饮料 * * @author

    8010

    机器人能不能拈花摘叶,也许就差了这项研究

    Häkkinen表示,“人类在抓起某种物品时,需要进行非常复杂的潜意识算,包括在这个过程中需要哪些肌肉,用哪些神经通路来控制它们以及以什么强度进行控制。 他是Grasp Sense方法背后的两大功臣之一。在热敏和深度相机的帮助下,Grasp Sense可以用来测量人类触摸物体表明留下的热量信息。人类触摸留下的热量信息收集后可以用在机器人技术上。 Hakala是Grasp Sense的另一个开发者,他主要专注于3D成像和显示技术的研究。机器人能否将物体一直抓握在手中,并避免将其捏碎,这是机器人技术中的难点。 除了机器人之外,Grasp Sense方法还可用于各种实用物品。触摸数据在必须令人愉快、符合人体工程学和使用准确的物体时可能非常有用。 根据Häkkinen的说法,同样的技术也可以通过在医院天花板上安装摄像头来创建医院卫生型。在热成像相机的帮助下,可以创建出接触密度最高的表面的型,使其保持清洁更容易且更高效。

    14820

    相关产品

    • 设计协作平台

      设计协作平台

      腾讯自研的产品设计研发一站式协作平台,支持在线导入预览Sketch设计稿、自动生成设计标注切图,灵活调用图标库、素材库,支持多种插件上传,让产品设计更轻松高效。

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭

      扫码关注云+社区

      领取腾讯云代金券