随笔分类 -  OOAD

OOAD与UML那点儿事
摘要:什么是面向对象?OOP:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOA:面向对象分析( Object-Oriented Analysis ,... 阅读全文
posted @ 2015-01-08 17:15 Bobby0322 阅读(2556) 评论(0) 推荐(1) 编辑
摘要:模式的诞生与定义模式起源于建筑业而非软件业模式(Pattern)之父——美国加利佛尼亚大学环境结构中心研究所所长Christopher Alexander博士《A Pattern Language: Towns, Buildings, Construction》——253个建筑和城市规划模式模式Co... 阅读全文
posted @ 2015-01-08 16:53 Bobby0322 阅读(1745) 评论(1) 推荐(1) 编辑
摘要:软件的可维护性和可复用性知名软件大师Robert C.Martin认为一个可维护性(Maintainability) 较低的软件设计,通常由于如下4个原因造成: 过于僵硬(Rigidity)  过于脆弱(Fragility)  复用率低(Immobility)  黏度过高(Viscosity... 阅读全文
posted @ 2015-01-07 09:53 Bobby0322 阅读(1322) 评论(1) 推荐(0) 编辑
摘要:聚合 “虚包含” 不明确组合 “实包含” 明确抽象(abstract)抽象:抽象是通过特定的实例抽取共同特征以后形成概念的过程。它强调主要特征,忽略次要特征。一个对象是现实世界中一个实体的抽象,一个类是一组对象的抽象,抽象是一种单一化的描述,它强调给出与应用相关的特性,抛弃不相关的特征。忽略掉一... 阅读全文
posted @ 2015-01-05 16:16 Bobby0322 阅读(2367) 评论(5) 推荐(0) 编辑
摘要:模式动机对于系统中的某些对象,它们存储在同一个集合中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同,访问者模式为解决这类问题而诞生。在实际使用时,对同一集合对象的操作并不是唯一的,对相同的元素对象可能存在多种不同的操作方式。而且这些... 阅读全文
posted @ 2015-01-04 14:24 Bobby0322 阅读(4094) 评论(3) 推荐(1) 编辑
摘要:模式动机模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,我们需要准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来让子... 阅读全文
posted @ 2015-01-04 11:50 Bobby0322 阅读(629) 评论(0) 推荐(0) 编辑
摘要:模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。 在软件系统中,有许... 阅读全文
posted @ 2015-01-04 11:38 Bobby0322 阅读(1902) 评论(0) 推荐(0) 编辑
摘要:模式动机在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的 (stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。在UML中可以使用状态... 阅读全文
posted @ 2015-01-04 11:16 Bobby0322 阅读(5998) 评论(1) 推荐(2) 编辑
摘要:模式动机建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式... 阅读全文
posted @ 2015-01-04 10:59 Bobby0322 阅读(6975) 评论(1) 推荐(1) 编辑
摘要:模式动机为了使软件的使用更加人性化,对于误操作,我们需要提供一种类似“后悔药”的机制,让软件系统可以回到误操作前的状态,因此需要保存用户每一次操作时系统的状态,一旦出现误操作,可以把存储的历史状态取出即可回到之前的状态。现在大多数软件都有撤销(Undo)的功能,快捷键一般都是Ctrl+Z,目的就是为... 阅读全文
posted @ 2014-12-31 14:52 Bobby0322 阅读(4859) 评论(0) 推荐(0) 编辑
摘要:模式动机在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题: 系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。 对象可重用性差:由于一个对象和其他对象具有很强的关联,若没有其他对象的支... 阅读全文
posted @ 2014-12-31 14:26 Bobby0322 阅读(1070) 评论(0) 推荐(1) 编辑
摘要:模式动机一个聚合对象,如一个列表(List)或者一个集合(Set),应该提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构。针对不同的需要,可能还要以不同的方式遍历整个聚合对象,但是我们并不希望在聚合对象的抽象层接口中充斥着各种不同遍历的操作。怎样遍历一个聚合对象,又不需要了解聚合对象... 阅读全文
posted @ 2014-12-31 13:58 Bobby0322 阅读(1005) 评论(0) 推荐(1) 编辑
摘要:模式动机如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题。解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。模式定义解释器模式(Interpreter... 阅读全文
posted @ 2014-12-31 13:32 Bobby0322 阅读(3509) 评论(0) 推荐(4) 编辑
摘要:模式动机在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。命令模式可以对发送者和接收者完全... 阅读全文
posted @ 2014-12-31 10:54 Bobby0322 阅读(2792) 评论(0) 推荐(2) 编辑
摘要:模式动机职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传递,由链上的处理者对请求进行相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链... 阅读全文
posted @ 2014-12-30 16:56 Bobby0322 阅读(916) 评论(0) 推荐(1) 编辑
摘要:模式动机在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对... 阅读全文
posted @ 2014-12-30 16:40 Bobby0322 阅读(1535) 评论(0) 推荐(0) 编辑
摘要:模式动机面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用。在享元模式中可以共享的相同内容称为内部状态(Intr... 阅读全文
posted @ 2014-12-30 16:26 Bobby0322 阅读(2902) 评论(0) 推荐(1) 编辑
摘要:模式动机引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个... 阅读全文
posted @ 2014-12-29 16:56 Bobby0322 阅读(1617) 评论(0) 推荐(0) 编辑
摘要:模式动机一般有两种方式可以实现给一个类或对象增加行为: 继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。 关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来... 阅读全文
posted @ 2014-12-29 16:26 Bobby0322 阅读(1196) 评论(0) 推荐(1) 编辑
摘要:模式动机对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象,如子文件夹和文件)并调用执行。(递归调用)由于容器对象和叶子对象在功能上的区别,在使用这些对象的客户端代码中必须有区别地对待容器对象和叶子对象,而实际... 阅读全文
posted @ 2014-12-29 16:14 Bobby0322 阅读(3512) 评论(0) 推荐(3) 编辑

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