03 2019 档案

摘要:在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时地类型标识。这个信息跟踪着每个对象所属地类。虚拟机 利用运行时类型信息选择相应地方法执行。 然而,可以通过专门地Java类访问这些信息。保存这些信息地类称为Class。这个名字很容易让人混淆。Object类中地getClass() 阅读全文
posted @ 2019-03-21 05:33 otr 阅读(192) 评论(0) 推荐(0)
摘要:反射库(reflection library)提供了一个非常丰富且精心设计的工具集,以便编写能够动态操纵Java代码的程序。这项功能被大 量的应用与JavaBean中,它是Java组件的体系结构,特别是在设计或运行中添加新类时,能够快速地应用开发工具动态地查询新添加类地能力, 能够分析类能力地程序称 阅读全文
posted @ 2019-03-21 04:47 otr 阅读(204) 评论(0) 推荐(0)
摘要:策略模式… Strategy Pattern  在POS系统中,有时需要实行价格优惠, 该如何处理?  对普通客户或新客户报全价  对老客户统一折扣5%  对大客户统一折扣10%  注:课件来自Head-First OOAD课程资料1.1 假设背景  Joe是一个OO程序员,所在的公司正 阅读全文
posted @ 2019-03-19 07:20 otr 阅读(270) 评论(0) 推荐(0)
摘要:GOF设计模式四: 观察者模式Observer  现实中遇到的问题  当有许多不同的客户都对同一数据源感兴趣,对相同的数据有不同的处理方式,该如 何解决?5.1 定义: 观察者模式  观察者模式 Observer  定义对象之间的一对多依赖关系,当一个对象改变状态时,所 有依赖于它的对象都会 阅读全文
posted @ 2019-03-19 07:01 otr 阅读(297) 评论(0) 推荐(0)
摘要:GOF设计模式三: 外观模式 Facade  “现有系统”功能强大、复杂,开发“新系统”需要用到其中一部分,但又要增加一部 分新功能,该怎么办?4.1 Facade Pattern: Key Features Intent You want to simplify how to use an ex 阅读全文
posted @ 2019-03-19 06:38 otr 阅读(269) 评论(0) 推荐(0)
摘要:GOF设计模式二: 适配器模式 Adapter  为中国市场生产的电器,到了美国,需要有一个转接器才能使用墙上的插座,这个转接 器的功能、原理?复习单实例模式  SingleTon的三个关键点  1)私有的:构造函数  2)私有的:成员变量,记录这个单实例  3)公有的getter函数:没 阅读全文
posted @ 2019-03-19 05:14 otr 阅读(303) 评论(0) 推荐(0)
摘要:GOF设计模式一: 单实例模式 SingleTon  整个美国,只有一个“现任美国总统”  比如,在学校,“老师”,有数百个;“校长”,只有一个  系统运行时,如何保证某个类只允许实例化一个对象?2.1 类的多重性  类的多重性 multiplicity  在对软件系统进行逻辑设计时,在某 阅读全文
posted @ 2019-03-18 08:27 otr 阅读(261) 评论(0) 推荐(0)
摘要:关于设计模式…Design Pattern  追求永恒的美1.1 “模式”一词的起源 “每个模式描述了: 一个在我们周围反复出现的问题, 然后是针对这个问题的解决方案。 这样,其他人可以无数次地反复 使用这种解决方案,不需要第二 次再去思考该如何解决这类问题” Christopher Alexan 阅读全文
posted @ 2019-03-18 08:11 otr 阅读(251) 评论(0) 推荐(0)
摘要:其他面向对象设计原则3: 依赖倒置原则DIP  The Dependency Inversion Principle7.1 依赖倒置原则DIP The Dependency Inversion Principle I. 高层模块不应当依赖低层模块 ,两者都依赖抽象 High-level modul 阅读全文
posted @ 2019-03-18 07:40 otr 阅读(197) 评论(0) 推荐(0)
摘要:其他面向对象设计原则2  能用组合的地方,不要用继承 Favor object composition over class inheritance6.1 代码重用的两种方式  能用组合的地方不要用继承 Favor object composition over class inheritanc 阅读全文
posted @ 2019-03-18 07:33 otr 阅读(279) 评论(0) 推荐(0)
摘要:其他面向对象设计原则1: 开-闭原则OCP  Open-Closed Principle (OCP)5.1 设计变坏的前兆 Signs of Rotting Design  僵硬性 Rigidity  难以更改代码 code difficult to change  从管理角度,拒绝任何的变 阅读全文
posted @ 2019-03-18 07:25 otr 阅读(242) 评论(0) 推荐(0)
摘要:GRASP原则九: 隔离变化  Protected Variations  需求一定会变化的!如何做到以系统的局部变化为代价就可以应对这一点?4.1 GRASP rule9: Protected Variations  Name: Protected Variations 隔离变化  Pro 阅读全文
posted @ 2019-03-18 07:18 otr 阅读(714) 评论(0) 推荐(0)
摘要:GRASP原则八: 间接 Indirection  若两个对象直接连接,导致耦合太紧,如何解决?3.1 GRASP rule8: Indirection 间接  Name: Indirection  Problem: 把职责分配到哪里可以避免两个或者多个对象之间的 直接耦合?如何解耦对象以保持 阅读全文
posted @ 2019-03-18 07:15 otr 阅读(386) 评论(0) 推荐(0)
摘要:GRASP原则七: 纯虚构 Pure Fabrication  如果依据信息专家原则获得的解决方案不合适,既不想违反低耦合、高内聚,也不想违 反其他的原则, 该如何把职责分配给对象?  左右为难….2.1 GRASP rule7: Pure Fabrication 纯虚构  Name: Pur 阅读全文
posted @ 2019-03-18 07:13 otr 阅读(976) 评论(0) 推荐(0)
摘要:GRASP原则六: 多态 Polymorphism  How to handle alternative behaviors based on type 如何处理依据类型不同而有 不同行为的一类需求 ?  比如,开餐馆  苏州人喜欢甜、四川人喜欢麻、湖南人喜欢辣,咋处理 ?1.1 9条GRAS 阅读全文
posted @ 2019-03-18 07:10 otr 阅读(357) 评论(0) 推荐(0)
摘要:GRASP原则五:高内聚 High Cohesion  How to keep objects focused, understandable and manageable, and as a side effect support Low Coupling? 如何使对象功能专注、可理解、可管理, 阅读全文
posted @ 2019-03-18 07:03 otr 阅读(618) 评论(0) 推荐(0)
摘要:4、GRASP原则四:控制器 Controller  What first object beyond the UI layer receives and co-ordinates (controls) a system operation? 在领域层,由谁负责首先接收并协调来自UI层的系统操作? 阅读全文
posted @ 2019-03-18 05:50 otr 阅读(966) 评论(0) 推荐(0)
摘要:3、GRASP原则三: 低耦合 Low Coupling  How to support low dependency, low change impact and increased reuse?  如何保证设计方案支持低的依赖性、低的变化影响度、增加可重用性?3.2 耦合的定义Couplin 阅读全文
posted @ 2019-03-18 05:39 otr 阅读(524) 评论(0) 推荐(0)
摘要:2、GRASP原则二:信息专家 Information Expert  What is a general principle of assigning responsibility to objects? 为一个对象 分配职责的一般原则是什么?  “鸡鸣狗盗” 战国时候,齐国的孟尝君喜欢招纳各 阅读全文
posted @ 2019-03-18 05:20 otr 阅读(697) 评论(0) 推荐(0)
摘要:1、GRASP原则一: 创建者 Creator  Who should be responsible for creating a new instance of some class 由谁来负责创建某个类的新实例(对象)1.1 GRASP 原则  GRASP  General Respons 阅读全文
posted @ 2019-03-18 05:15 otr 阅读(588) 评论(0) 推荐(0)
摘要:6、面向对象设计 … Object-oriented Design  面向对象设计在系统开发中的位置  Contrast the importance of object design skill versus UML notation knowledge6.1 面向对象设计的关注点  面向对 阅读全文
posted @ 2019-03-17 19:56 otr 阅读(253) 评论(0) 推荐(0)
摘要:开始进入设计 … Transition to Design  从需求分析到设计  逻辑架构与子系统 Logical Architecture and sub-system 5.1 向设计过程切换 Transition to Design  需求与领域分析阶段During requirement 阅读全文
posted @ 2019-03-17 19:46 otr 阅读(301) 评论(0) 推荐(0)
摘要:4、操作契约 Operation Contracts  “用例描述”的补充  强调: 用例中重要的动作,其开始与结束是需要一些约束 4.5 操作契约的后置条件  定义Definition  后置条件描述了领域对象状态的变化 describe changes in the state of o 阅读全文
posted @ 2019-03-17 19:35 otr 阅读(735) 评论(0) 推荐(0)
摘要:3、契约式设计 Design by Contract  可信软件设计的基础思想  谚语: When ideas fail, words come in very handy ! 他人译文“殚思竭虑之时,文字将成为利器” 本人认为“当想法失败时,总会出来许多理由辩解”3.1 问题的引入 由谁负责系 阅读全文
posted @ 2019-03-17 19:29 otr 阅读(455) 评论(0) 推荐(0)
摘要:2.1 用例描述事物本质,与界面无关  用例描述,关注参与者的目标,而不是实现界面这类细节  1)洞察“the goal of the goal ”  Example, “Log on”, 收银员在想着 GUI, dialog box, user ID, and password  但这是一 阅读全文
posted @ 2019-03-17 19:18 otr 阅读(459) 评论(0) 推荐(0)
摘要: 1、准备高质量的”用例模型 ”…  OOAD的主要输入!Use Case is the main input of OOAD1.1 用例模型  用例模型的组成  参与者  用例(取名:短小精悍的动名词,如“取钱”、“修改密码)  用例描述 (作为领域模型的输入、设计的输入、开发的输入… 阅读全文
posted @ 2019-03-17 19:12 otr 阅读(317) 评论(0) 推荐(0)
摘要:系统顺序图 System Sequence Diagram  把待建系统看成一个黑盒子,研究参与者与系统边界的交互  SSD  System Sequence Diagram  What is SSD  A SSD is a picture that shows, for one part 阅读全文
posted @ 2019-03-17 19:00 otr 阅读(1648) 评论(0) 推荐(0)
摘要: 敏捷建模Agile Modeling – 类图的草图  – 是否利用工具建模  创建领域模型的目的是快速地理解关键的概念,并在涉众之间交流 the purpose of creating a domain model is to quickly understand and communic 阅读全文
posted @ 2019-03-17 18:57 otr 阅读(634) 评论(0) 推荐(0)
摘要:领域模型 Domain Model  什么是领域模型  一种概念模型,问题领域的概念的表示 A conceptual model,a representation of concepts in a problem domain  如何表示领域模型  简单地说, “没有定义操作的类图”  模 阅读全文
posted @ 2019-03-17 18:47 otr 阅读(339) 评论(0) 推荐(0)
摘要:CRC  又称为CRC索引卡片:CRC card  每张卡片代表一个类 Each card represents one class  每张卡片上写出这个类承担的职责、与其合作交互的其他类名 CRC cards are paper index cards on which one writes 阅读全文
posted @ 2019-03-17 18:23 otr 阅读(2255) 评论(0) 推荐(0)
摘要:标识概念类和对象  原则  类,表示一组具有相同行为、属性的对象 Remember that a class represents a group (classification) of objects with the same behaviors  类,在表示对象群体的时候,一般用单数 G 阅读全文
posted @ 2019-03-17 18:17 otr 阅读(451) 评论(0) 推荐(0)
摘要:一般原则  An object-oriented system is composed of objects sending messages to other objects  The quality of the overall design depends on which object 阅读全文
posted @ 2019-03-15 14:13 otr 阅读(320) 评论(1) 推荐(0)
摘要:分析模型定义 分析模型法 Analysis model with stereotypes  是由Jacobson提出的  用于描述系统规格说明  一个健壮、稳定的模型,必须与实现环境无关  实现环境的任何变化,不会影响到系统的逻辑结构  分析模型能够关注到系统的信息、行为、展示(输入/出) 阅读全文
posted @ 2019-03-15 14:08 otr 阅读(613) 评论(0) 推荐(0)
摘要:Analysis Phase分析阶段  在软件工程,分析是一种过程,把用户需求转变为系统需求  系统规格说明,也称为逻辑结构,是开发人员眼中的系统  已经有了哪些业务规则、业务逻辑?  还有哪些事需要提醒客户的?  大的、复杂系统的开发,有两种主要的分析方法  面向功能的分析Functi 阅读全文
posted @ 2019-03-15 14:03 otr 阅读(1698) 评论(0) 推荐(0)
摘要:面向对象分析与设计概览…  良好的对象设计意味着什么?  是构建高质量软件系统的基本要求,如  Architectural cohesion 架构性的内聚  Reusability 可重用性  Maintenance 可维护性  Scalability 可扩展性  Flexibilit 阅读全文
posted @ 2019-03-14 15:22 otr 阅读(467) 评论(0) 推荐(0)
摘要:问题的引出 顺序图是对对象的动态行为进行建模,有多个对象的参与、协作 问题: 当需要考察单个实体的动态行为时, 用UML如何来建模呢? 什么是单个实体:一个软件系统?一个子系统?一个模块、一个构件? 选择单个对象 软件系统中核心的、需要进行详细分析的单个实体 从不同的视点(ViewPoint)可有不 阅读全文
posted @ 2019-03-09 11:27 otr 阅读(359) 评论(0) 推荐(0)
摘要:与顺序图本质上是一样的,可以互换 建模的角度不同 顺序图 强调随着时间的推移,各对象是如何交互的 通信图 强调对象之间的结构关系 对象间的协作与交流表现为 一个对象以某种方式启动另一个对象的活动,这种交流被定义为消息 通信图是交互图的另一种表现形式 它在语义上和顺序图是等价的 通信图强调 阅读全文
posted @ 2019-03-06 20:04 otr 阅读(417) 评论(0) 推荐(0)
摘要:相关概念 交互 对象之间为实现某一功能而必须实施的协作过程、动态行为,称为交互 消息 对象间的协作与交流表现为一个对象以某种方式启动另一个对象的活动,这种交流在 UML里被定义为消息 顺序图的建模元素 对象或角色( role ) 参与者 消息 交互图 交互的过程表现出来,就是交互图 顺序图、通信图, 阅读全文
posted @ 2019-03-06 19:48 otr 阅读(537) 评论(0) 推荐(0)