随笔 - 111, 文章 - 0, 评论 - 39, 阅读 - 61万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  OOAD

摘要:黑板模式是一种常用的架构模式,应用中的多种不同数据处理逻辑相互影响和协同来完成数据分析处理。就好像多位不同的专家在同一黑板上交流思想,每个专家都可以获得别的专家写在黑板上的信息,同时也可以用自己的分析去更新黑板上的信息,从而影响其它专家。在实际应用中常见的实现模式有:A 利用数据库利用数据库充当黑板,不同的应用共享数据库中信息,并且可以更新数据信息。这也是最常见的实现方式。特点:1 便于实现信息的查询,筛选和统计,这方面关系数据库提供了SQL 92的强大支持。2 不能用于较高实时性要求的环境,这种实现是工作在“拉模式”下的,并且高频率的访问数据库会导致严重的系统性能问题。B 利用发布—订阅模式 阅读全文

posted @ 2011-06-13 16:33 李大嘴 阅读(1611) 评论(0) 推荐(0) 编辑

摘要:本书每一个应用实例将主要强调宏观生命周期的一个特定部分以及适用的分析和设计(即微观)技能。《基于卫星的导航》-从简化视角开发第一(segments,同汇编课中代码段、数据段、堆栈段等等释义是一样的,即代表系统中不同的部分)和第二(sub-systems)个级别的架构。我们意图是探索表示法和过程如何应用到系统架构的开发中。架构的开发时伴随着系统功能需求与非功能需要逐步深入而一步步建立起来的,它是系统的最明了的蓝图。宏观过程初始1. 定义问题边界,提供给我们的功能需求实际上是众多使命级别用例的容器(在UML中就是包)。2. 决定mission用例,敲定高级别抽象的segments级别的逻辑架构。 阅读全文

posted @ 2011-06-11 11:22 李大嘴 阅读(301) 评论(0) 推荐(0) 编辑

摘要:第5章描述了表示法-UML图,分为两大类,即描述静态结构的结构图和描述动态行为的行为图。在这不一一列举,实践地时候可以去查如何使用相应的表示法。这些表示法可不是一出来就一成不变的,而是需要经历概念模型、逻辑模型和物理模型的演变,在项目开发的不同阶段使用不同的模型。问题:1. 这么多的表示法,我们在实践中都要一一画出吗?2. 在项目开发的不同阶段,都应该相应地使用哪些表示法。对于问题一,答案是不必使用全部表示法,就像RUP过程理论一样,它是力求一种通用的理论,但在实际的项目过程中,往往是理论的子集。对于问题2,后面会结合实战来分析。第6章描述了软件开发过程,首先描述了成功项目的特征:存在很强的架 阅读全文

posted @ 2011-06-07 09:41 李大嘴 阅读(325) 评论(0) 推荐(0) 编辑

摘要:第4章描述了分类的重要性,以及经典的分类方法。而后就面向对象的分析与设计一般方法进行了描述:在分析时,关注的重点是分析面临的问题域,从问题域的词汇表中发现类和对象,实现对真实世界的建模。在设计时,我们在模型中发明一些抽象和机制,位要构建的解决方案提供设计。先看下Booch对面向对象分析和设计的经典论述:OOP:面向对象编程是一种实现方法,程序被组织成对象的协作集合,每一个对象代表某个类的实例,对象的类是通过继承关系联合在一起的类层次中的所以成员。OOD:面向对象设计是一种设计方法,它包含面向对象的分解过程,以及一种表示方法,用来描写设计中的系统的逻辑模型与物理模型,以及静态模型与动态模型。OO 阅读全文

posted @ 2011-06-01 11:11 李大嘴 阅读(507) 评论(0) 推荐(0) 编辑

摘要:类类间关系在类图中,除了需要描述单独的类的名称、属性和操作外,我们还需要描述类之间的联系,因为没有类是单独存在的,它们通常需要和别的类协作,创造比单独工作更大的语义。在UML类图中,关系用类框之间的连线来表示,连线上和连线端头处的不同修饰符表示不同的关系。类之间的关系有继承(泛化)、关联、聚合和组合。(1)继承:指的是一个类(称为子类)继承另外的一个类(称为基类)的功能,并增加它自己的新功能的能力,继承是类与类之间最常见的关系。类图中继承的表示方法是从子类拉出一条闭合的、单键头(或三角形)的实线指向基类。例如,图1给出了MFC中CObject类和菜单类CMenu的继承关系。 类的继承在C++中 阅读全文

posted @ 2011-05-30 16:26 李大嘴 阅读(653) 评论(0) 推荐(0) 编辑

摘要:软件的复杂性是一个基本性质,而不是一个偶然性质。这种固有的复杂性是由4个因素造成的:问题领域的复杂性,管理开发过程的困难、软件可能的灵活性以及表征离散系统行为的困难。不限制复杂性将导致项目的推迟提交、走出预算以及无法满足所有需求等,这种情况通常称为软件危机。所有的复杂系统都具有5个属性:1)复杂性经常是以层次的形式表现出来,复杂系统是由相互关联的子系统组成,而这些子系统又是由它们各自的子系统构成,并由此类推到最低层的基本构件。--分层结构2)对系统中最基本的构件的选择是相对任意的,而且在很大程度上取决于系统观察者的判断力。--相对本元3)一般而言,各构件内的连接总要强于构件间的连接。在从构件的 阅读全文

posted @ 2011-05-27 10:55 李大嘴 阅读(710) 评论(0) 推荐(0) 编辑

摘要:一、定义代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口,使得原本接口不兼容而不能一起工作的那些类可以一起工作。外观模式(Facade):为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。二、理解代理模式和适配器模式应该说很相像,但是他们的区别也很明显,代理模式和被代理者的接口是同一个,只是使用中客户访问不到被代理者,所以利用代理间接的访问,而适配器模式,是因为接口不同,为了让用户使用到统一的接口,把原先的对象通过适配器让用户统一的使用,大多数运用在 阅读全文

posted @ 2011-05-24 17:06 李大嘴 编辑

摘要:1.结构化方法遵循的基本原则 结构化方法的基本思想就是将待解决的问题看作一个系统从而用系统科学的思想方法来分析和解决问题结构化方法遵循以下基本原则 (1)抽象原则 抽象原则是一切系统科学方法都必须遵循的基本原则它注重把握系统的本质内容而忽略与系统当前目标无关的内容它是一种基本的认知过程和思维方式 (2)分解原则 分解原则是结构化方法中最基本的原则它是一种先总体后局部的思想原则在构造信息系统模型时它采用自顶向下分层解决的方法 (3)模块化原则 模块化是结构化方法最基本的分解原则的具体应用它主要出现在结构化设计阶段中其目标是将系统分解成具有特定功能的若干模块从而完成系统指定的各项功能2.面向对象模 阅读全文

posted @ 2011-04-26 09:37 李大嘴 编辑

摘要:中介者模式属于行为型模式,其意图是用一个中介对象封装一系列的对象交互。中介者使用各对象不需要显式的相互调用,从而使其耦合松散,而且可以独立地改变他们之间爱女的交互。 面向对象设计鼓励将行为分布到各个对象中,这种分布可能会导致对象间有许多连接,在最坏的情况下,每一个对象都知道其他所有的对象,这无疑复杂化了对象之间的联系。虽然将一个系统分割成许多对象通常可以增强可复用性,但是对象间相互连接的激增又会降低其可复用性,大量的相互连接使得一个对象似乎不太可能在没有其他对象的支持下工作,系统表现为一个不可分割的整体,而且对系统的行为进行任何较大的改动都会十分困难。结果是你不得不定义大量的子类以定制系统的行 阅读全文

posted @ 2011-04-20 10:14 李大嘴 编辑

摘要:“设计模式”一书包含的23种模式都有若干个著名的应用,这些应用具有一定的通用性,可以方便地应用于不同应用领域,并且包含多种对象。有关作者将这些模式分成三类:1、创建型模式(Creationalpattern):为你创建对象,而不必由你直接实例化对象。针对给定的案例,程序可以在确定需要创建哪些对象是获得更大的灵活性。创建模式分为类的创建模式和对象的创建模式两种。类的创建模式类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并且隐藏了这些类的实例是如何创建和放在一起的。对象的创建模式对象的创建模式则把对象的创建过程动态的委派给另一个对象,从而动态地决定客户端将 阅读全文

posted @ 2011-04-19 09:36 李大嘴 编辑

摘要:[1]先去看看这个帖子《深入浅出享元模式》http://blog.csdn.net/ai92/archive/2004/12/21/224598.aspx[2]享元模式-复合享元:package pattern.flyweight.unsharable;import java.util.*;/*** 复合的享元模式:* 复合享元是不能共享的,所以叫Unsharable Flyweight。* 但是复合享元是可以分解为可共享的单纯享元。** @version 2009-6-25* @author Winty(wintys@gmail.com)*/public class UnsharableFl 阅读全文

posted @ 2011-04-18 08:44 李大嘴 编辑

摘要:这几天一直在研究各种各样的设计模式,在学习适配器模式、桥接模式和外观模式模式的时候,发现他们之间存在着一定的关系,实际上模式不适单一存在的,在我们的现实编程生活中往往是几种模式结合使用的。 1.适配器模式与桥接模式的区别和联系 适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。 两种模式的区别在于使用场合不同,适配器模式主要解决两个已有接口间的匹配问题,这种情况下被适配的接口的实现往往是一个黑匣子。我们不想,也不能修改这个接口及其实现。同时也不可能控制其演化,只要相关的对象能与系统定义的接口协同工作即可。适配器模式经常用在与第 阅读全文

posted @ 2011-04-17 16:04 李大嘴 编辑

摘要:认识桥接模式(1)什么是桥接 在桥接模式里面,不太好理解的就是桥接的概念,什么是桥接?为何需要桥接?如何桥接?把这些问题搞清楚了,也就基本明白桥接的含义了。 一个一个来,先看什么是桥接?所谓桥接,通俗点说就是在不同的东西之间搭一个桥,让他们能够连接起来,可以相互通讯和使用。那么在桥接模式中到底是给什么东西来搭桥呢?就是为被分离了的抽象部分和实现部分来搭桥,比如前面示例中抽象的消息和具体消息发送之间搭个桥。 但是这里要注意一个问题:在桥接模式中的桥接是单向的,也就是只能是抽象部分的对象去使用具体实现部分的对象,而不能反过来,也就是个单向桥。(2)为何需要桥接 为了达到让抽象部分和实现部分都可以 阅读全文

posted @ 2011-04-17 15:59 李大嘴 编辑

摘要:行为性设计模式:对象之间的通信。模板方法模式:提供算法的一个抽象定义。命令模式:用简单的对象表示软件命令的执行,支持登录和取消操作。解释器模式:提供一个如何把语言元素包括在程序中的定义。中介者模式:定义了如何用一个对象简化对象之间的通信,使对象之间不必相互了解。迭代器模式:提供一种顺序访问一个类中一系列数据的方式。观察者模式:定义了一种把改动通知给多个对象的方式。职责链:把请求从链中的一个对象传到下一个对象,直到请求被响应为止。通过这种方式去除对象之间的耦合。备忘录模式:定义了如何保存一个类的实例内容,以便以后恢复它。状态模式:允许一个对象在其内部状态改变时修改它的行为。策略模式:将算法封装到 阅读全文

posted @ 2011-04-12 23:49 李大嘴 编辑

摘要:总述: 结构模式描述的是如何组合类和对象已获得更大的结构。类模式和对象模式之间的区别是:类描述的如何通过继承提供更有用的接口,而对象描述的是通过使用对象的组合或将对象包涵在别的对象里面以获得更有用的结构。适配器模式:在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。如何应对这种“迁移的变化”?如何既能利用现有对象良好的接口,同时又能满足新的应用环境所要求的接口?桥接模式:组合模式:对象的组合装饰模式:动态给对象添加职责外观模式:一个类表示一个子系统,定义了一个高层接口,使得子系统更容易使用。享元模式:用于共享对象,其 阅读全文

posted @ 2011-04-12 23:47 李大嘴 编辑

摘要:工厂方法模式:提供一个简单的决策类,根据条件生成产品。抽象工厂模式:提供一个创建并返回一系列产品的接口。单件模式:某个类只能有一个实例。提供一个全局访问点。(可拓展到有限个实例)生成器模式:将一个复杂对象的构建于呈现分开,以便根据不同需要创建不同的形式。原型模式:先实例化一个类,然后克隆或者拷贝该类来构建新的实例。可以用共有方法进一步修改这些实例。难点:生成器模式关注于将构造对象的过程和构造的各个部分分开,而抽象工厂关注于构建一个产品系列。实际上,最大的区别是生成器模式创建的产品不一定有共同的父类,只要有类似的构造过程即可。实际上我们常见到的文件资源管理器的实现完全可以使用生成器模式。简单工厂 阅读全文

posted @ 2011-04-11 20:12 李大嘴 编辑

摘要:模式一词源于建筑学,每个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。其描述了软件设计过程中某一类常见问题的一般性的解决方案。 面向对象设计模式更加具体,即类与相互通讯的对象之间的组织关系,包括角色、职责、协作方式几个方面。所谓好的面向对象的设计指的是那些可以满足“应对变化,提高复用”的设计。如何做到这8个字呢,面向对象设计模式不想算法技巧,而已照搬,它是建立在对面向对象“纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的前提是首先掌握面向对象”!掌握OOPL是必要条件,但不是充分条件。 对象需要从概念(对象是某种拥有责任的抽象)、规格(对象是一系列可以被. 阅读全文

posted @ 2011-04-11 15:40 李大嘴 编辑

点击右上角即可分享
微信分享提示