GRASP (职责分配原则)】的更多相关文章

GRASP (职责分配原则) 要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效.灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一切都是空谈,那么类和对象是从那冒出来的呢?这时就需要比23种设计模式更重要更经典的GRASP模式登场了,嘿嘿,原来这才是老大! GRASP(General Responsibility Assignment Software Patterns),中文名称为"通用职责分配软件模式",GRASP一共包括…
要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效.灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一切都是空谈,那么类和对象是从那冒出来的呢?这时就需要比23种设计模式更重要更经典的GRASP模式登场了,嘿嘿,原来这才是老大! GRASP(General Responsibility Assignment Software Patterns),中文名称为“通用职责分配软件模式”,GRASP一共包括9种模式,它们描述了对象设计和职责分配的…
Atitit GRASP(General Responsibility Assignment Software Patterns),中文名称为"通用职责分配软件模式" 1. GRASP (职责分配原则)1 1.1. GRASP设计模式 1 1.2. 9个基本的OO设计原则或基本的设计构件.这9个设计模式分别是:创建者(Creator).信息专家(Information Expert).低耦合(Low Coupling).控制器(Controller).高内聚(High Cohesion…
转自:http://www.cnblogs.com/sevenyuan/archive/2010/03/05/1678730.html 及:http://blog.csdn.net/lovelion 及:http://blog.sohu.com/s/Mzc2Nzc5MjU/239020230.html 在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳出相关的类:然后定义各个类之间的关联关系,并给这些类分配相应的职责,同时定义这些类之间的协作方式.将相应的职责分…
本组人数:5. 一.人员职责划分 PM:1            柴泽华 PM的职责: 1)根据项目范围.质量.时间与成本的综合因素的考虑,进行项目的总体规划与阶段计划. 2)设置项目组中的各种角色,并分配好各角色的责任与权限. 3)合理安排项目组各成员的工作,使各成员工作都能达到一定的饱满度. 4)控制项目组各成员的工作进度,即时了解项目组成员的工作情况,并能快速的解决项目组成员所碰到的难题. Dev:5           徐姗,李超,乔立男,杨军,柴泽华 Dev的职责: 1)理解和管理非功…
前言 对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数.垃圾收集器组合一般就是Serial+Serial Old和Parallel+Serial Old,前者是Client模式下的默认垃圾收集器组合,后者是Server模式下的默认垃圾收集器组合,文章使用对比学习法对比Client模式下和Server模式下同一条对象分配原则有什么区别. TLAB 首先讲…
前言 JVM的自动内存管理要自动化的解决两个问题:对象分配内存以及回收分配给对象的内存.对象的内存分配一般是指在堆上分配,少数情况下也可能会直接分配在老年代上,对象主要分配在新生代的Eden 区上,如果启动了本地线程分配缓存,将按线程优先在TLAB (本地线程分配缓存)上分配.分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数. 垃圾收集器组合一般就是Serial+Serial Old和Parallel+Serial Old,前者是Cli…
https://mp.weixin.qq.com/s/IaxAnWfVqe3mM0bHFVV5Gg 软件开发必修课:你该知道的GRASP职责分配模式 原创 悟真 阿里技术 今天 收录于话题 #设计模式 3 #领域建模 2 #架构 15 #RDD 1      …
1 什么是单一职责(SRP)原则 单一职责原则的英文是 Single Responsibility Principle,缩写为 SRP.翻译过来就是:一个类或者模块只负责完成一个职责(或者功能). 所谓职责是指类变化的原因.如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责.而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因. 很多人认为这个原则是针对一个类进行描述,在我看来这里使用模块这个更加抽象的名词更为合适.在设计中,小到一个方法,大到一个模块我们都应该尽量取遵循单…
1.GRASP原则一: 创建者 Creator  Who should be responsible for creating a new instance of some class 由谁来负责创建某个类的新实例(对象)1.1 GRASP 原则  GRASP  General Responsibility Assignment Software Patterns  初学对象技术的同学,在编码或绘制交互图和类图时,应该理解并应用 GRASP的内在思想, 以便尽快地掌握这些基本原则,它们是…
一.引言: 在Java中我们只需要轻轻地new一下,就可以为实例化一个类,并分配对应的内存空间,而后似乎我们也可以不用去管它,Java自带垃圾回收器,到了对象死亡的时候垃圾回收器就会将死亡对象的内存回收. 真的只要根据需要巴拉巴拉地new而不用管内存回收了吗?那为什么会存在这么多的内存溢出情况呢?下面我们就需要了解一下Java内存的回收机制,只有了解了其虚拟机的回收原理才能更好的管理内存,避免内存溢出. 二.Java虚拟机的内存区域 首先,我们得知道在我们的虚拟机中内存到底是怎么划分区域的,下面…
只有到了一定层次后才会真正的深入体会到面向对象的一些知识点啊! 不谈具体程序,谈的是你对软件的理解 模式: 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心. “模式”这个词是不局限于软件开发行业的,它几乎无处不在,它其实就是一种经验的积累,就象大多数人的教育经历都是从小学到初中再到高中再到大学,这也是一种模式,是中国的教育模式:现在越来越火的出国热,也是另一种模式,海外留学模式 比设计模式更重要:GRASP (职责分配原则) GRASP(General Respon…
1.开发者如何设计对象? 1).直接编码 2).uml图,然后编码 3).uml图,不编码 绘图要轻量的 2.并行创建若干模型 如:5分钟画交互图,5分钟画类图.反复交替 3.选择什么样的UML CASE工具? 1).能与eclipse或idea 集成的UML CASE 2).通过现有代码逆向生成类图.交互图的UML CASE 4.动/静对象建模 先画交互图,在画类图.反复交替进行.要花费更多的时间在交互图上,因为职责驱动设计和GRASP原则的动态建模中尤为重要. 5.对象设计技巧 1).职责分…
 为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”.笔者在初学java时也是这样认为的.如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常何时被记录?异常该怎么记录?何时需要把checked Exception转化成unchecked Exception ,何时需要把unChecked Exception转化成checked Exception?异常是否应…
1.前言 开发者如何设计对象,可以采用如下三种方式: 编码:在编码的同时进行设计 绘图然后编码:绘制一些UML,然后转到如上编码方式,在集成开发环境中编码 只绘图,不编码:使用工具从图中生成一切 本章主要介绍在对象设计和编码前进行轻量级绘图 2.敏捷建模 敏捷建模的目标是减少常用图形 建模的目的是为了沟通和理解,不是为了构建文档 简单的敏捷建模方法包括使用白板笔.数码相机和打印机捕获“UML草图” 敏捷建模还包括: 与他人一同建模.并行创建若干模型 XP敏捷建模原则:一切从简.只为有效 敏捷建模…
1. JAVA异常处理 在面向过程式的编程语言中,我们可以通过返回值来确定方法是否正常执行.比如在一个c语言编写的程序中,如果方法正确的执行则返回1.错误则返回0.在vb或delphi开发的应用程序中,出现错误时,我们就弹出一个消息框给用户. 通过方法的返回值我们并不能获得错误的详细信息.可能因为方法由不同的程序员编写,当同一类错误在不同的方法出现时,返回的结果和错误信息并不一致. 所以java语言采取了一个统一的异常处理机制. 什么是异常?运行时发生的可被捕获和处理的错误. 在java语言中,…
J2EE项目异常处理                        为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”.笔者在初学java时也是这样认为的.如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常何时被记录?异常该怎么记录?何时需要把checked Exception转化成unchecked Exception ,何时需要把unChecked Ex…
 为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”.笔者在初学java时也是这样认为的.如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常何时被记录?异常该怎么记录?何时需要把checked Exception转化成unchecked Exception ,何时需要把unChecked Exception转化成checked Exception?异常是否应…
GRASP概述 GRASP,全称General Responsibility Assignment Software Patterns,译为”通用职责分配软件原则“,包含以下原则和模式 控制器(Controller) 控制器模式用来接收和处理系统事件的职责,一般应该分配给一个能够代表整个系统或者单个用例场景 一个用例控制器应该用来处理一个用例的所有系统事件 控制器对象定义为UI展现层之上的第一个对象负责接收和协调系统操作 控制器本身不应该包含太多逻辑和功能 在N-Layer多层架构应用程序中,控…
GRASP 模式:每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心.”这是关于模式最经典的定义,作者是建筑大师Christopher Alexander.如果是第一次看到这句话,多数人会觉得有些抽象难懂.其实“模式”两个字只是一个代号,就像我的英文名字叫Justin,如果我改叫Tom也没什么问题,只是我更喜欢Justin这个名字,所以从Christopher开始,有了“模式”这个词,人们也都把关于“重复发生的问题的描述和解决办法”统称为模式.“模式”这个词是不局限于软…
GRASP原则九: 隔离变化  Protected Variations  需求一定会变化的!如何做到以系统的局部变化为代价就可以应对这一点?4.1 GRASP rule9: Protected Variations  Name: Protected Variations 隔离变化  Problem: 如何设计对象.系统和子系统,使得这些成分里面的变化因素. 不稳定因素不会对系统的其余 部分造成意想不到的影响? How to design objects, systems and sub…
GRASP原则八: 间接 Indirection  若两个对象直接连接,导致耦合太紧,如何解决?3.1 GRASP rule8: Indirection 间接  Name: Indirection  Problem: 把职责分配到哪里可以避免两个或者多个对象之间的 直接耦合?如何解耦对象以保持较高的可重 用性? Where to assign a responsibility to avoid direct coupling between two or more objects? How…
GRASP原则七: 纯虚构 Pure Fabrication  如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合.高内聚,也不想违 反其他的原则, 该如何把职责分配给对象?  左右为难….2.1 GRASP rule7: Pure Fabrication 纯虚构  Name: Pure Fabrication  Problem: 依据一些原则(比如,信息专家)获得的解决方案不合 适的情况下,既不想违反低耦合.高 内聚,也不想违反其他的原则, 如 何 把 职 责 分 配 给 对…
GRASP原则六: 多态 Polymorphism  How to handle alternative behaviors based on type 如何处理依据类型不同而有 不同行为的一类需求 ?  比如,开餐馆  苏州人喜欢甜.四川人喜欢麻.湖南人喜欢辣,咋处理 ?1.1 9条GRASP原则  Information Expert  responsibilities should be assigned to objects that contain relevant info…
单一职责原则(SRP) 定义:系统中的每一个类都应该只有一个职责. 好处:高内聚.低耦合. 解释说明: 单一职责也就是说我们应该让一个类或一个对象只做一件事情,每个类所要关注的就是自己要完成的职责是什么,能够引起这个类变化的原因也应该只有一个,这也是后面提到的所有的设计模式都会遵守的一个原则. 高内聚:先按照面向对象的封装特性来理解,封装也就是我们说的,应该把一个类或对象它所有相关的属性.方法.行为放到一起,放到一个类中,这样就实现了一个封装的特性.那么内聚,就是一个类里面应该包含它所有的属性和…
单一职责原则:Single Responsibility Principle (SRP) 一个类.仅仅有一个引起它变化的原因.应该仅仅有一个职责.每个职责都是变化的一个轴线.假设一个类有一个以上的职责,这些职责就耦合在了一起.这会导致脆弱的设计.当一个职责发生变化时,可能会影响其他的职责.另外,多个职责耦合在一起,会影响复用性. 比如:要实现逻辑和界面的分离. T负责两个不同的职责:职责P1.职责P2.当因为职责P1需求发生改变而须要改动类T时.有可能会导致原本执行正常的职责P2功能发生问题.…
单一职责(SRP)定义: 不要存在多于一个导致类变更的原因,通俗的说,即一个类只负责一项职责. 问题由来: 类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障. 解决方案: 遵循单一职责原则.分别建立两个类T1.T2,使T1完成职责P1功能,T2完成职责P2功能.这样,当修改类T1时,不会使职责P2发生故障风险:同理,当修改T2时,也不会使职责P1发生故障风险. ps: 说到单一职责原则,很多人都会不屑一顾.因为…
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设) 5.SOA分布式下的数据一致性 5.1.分布式事务(基于DTC的分布式事务) 5.2.事务补偿(提供正向或反向的操作来让数据在业务上是一致的) 5.3.异步EDA(基于异步事件流来实现柔性的分布式事务) 6.总结 1.背景介绍 最近一段时…
根据讲师所讲做了一下笔记以便自己能方便学习: ------------------------------------------grasp设计模式: grasp(general responsibility assignment software patterns:通用职责分配软件模式)模式相对于gof23模式更加抽象, 它的核心思想:职责如何分配和如何用用职责设计对象: 它的五个基本模式: ---信息专家.创建者.高内聚.低耦合.控制器: 四个扩展模式; ---多态性.纯虚构.间接性.防止变…
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DDD+GRASP进行分析和设计(防止主观的判断导致错误的假设) 5.SOA分布式下的数据一致性 5.1.分布式事务(基于DTC的分布式事务) 5.2.事务补偿(提供正向或反向的操作来让数据在业务上是一致的) 5.3.异步EDA(基于异步事件流来实现柔性的分布式事务) 6.总结 1.背景介绍 最近一段时…