面向对象 UML 设计模式
文章平均质量分 54
smallgyy
这个作者很懒,什么都没留下…
展开
-
[推荐] 常见设计模式的解析和实现(C++) 全20部分
常见设计模式的解析和实现(C++) 全20部分http://club.topsage.com/forum.php?mod=viewthread&tid=744393&fromuid=4206828 常见设计模式的解析和实现(C++)之一:Factory模式http://club.topsage.com/forum.php?mod=viewthread&tid=743333&from转载 2012-11-28 13:14:09 · 920 阅读 · 0 评论 -
软件设计原则----迪米特法则(LoD)http://blog.csdn.net/beyondhaven/article/details/6906148
软件设计原则----迪米特法则(LoD)“一个对象应该对其他对象有尽可能少的了解”“Only talk to your immediate friends”“Don’t talk to strangers”“每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位” ……来源:迪米特法则(L转载 2013-07-28 17:20:21 · 1026 阅读 · 0 评论 -
软件设计原则----LisKov替换原则(LSP)http://blog.csdn.net/beyondhaven/article/details/6826013
软件设计原则----LisKov替换原则(LSP)“一个软件实体如果使用的是一个基类的话,一定适用于其子类,而且根本不能觉察出基类对象和子类对象的区别。”陈述:子类型(Subtype)必须能够替换他们的基类型(Basetype)Barbara Liskov对原则的陈述:若对每个类型S的对象o1,都存在一个类型T的对象o2,使得在所有针对T编写的程序P转载 2013-07-28 17:12:13 · 996 阅读 · 0 评论 -
软件设计原则----合成/聚合复用原则(CARP)http://blog.csdn.net/beyondhaven/article/details/6906050
软件设计原则----合成/聚合复用原则(CARP)“要尽量使用合成/聚合,尽量不要使用继承。”陈述:在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分,新对象通过向这些对象的委派达到复用已有功能的目的。引入:如我们所知,在面向对象设计里,不同环境中复用已有设计和实现的基本方法:继承。合成/聚合。1、继承复用转载 2013-07-28 17:08:06 · 958 阅读 · 0 评论 -
软件设计原则----单一职责原则(SRP)http://blog.csdn.net/beyondhaven/article/details/6821010
软件设计原则----单一职责原则(SRP)陈述:就一个类而言,应该只有一个导致其变化的原因分析:一个职责就是一个变化的轴线。一个类如果承担的职责过多,就等于将这些职责耦合在一起。一个职责的变化可能会虚弱或者抑止这个类完成其它职责的能力。多职责将导致脆弱性的臭味。示例1: Rectangle类具有两个职责:计算矩形面积转载 2013-07-28 17:18:11 · 854 阅读 · 0 评论 -
软件设计原则----接口隔离原则(ISP)http://blog.csdn.net/beyondhaven/article/details/6905877
软件设计原则----接口隔离原则(ISP)分类“使用多个专门的接口比使用单一的总接口要好”。“一个类对另外一个类的依赖性应该建立在最小的接口上”。陈述:不应该强迫客户依赖于他们不用的方法。一个类的不内聚的“胖接口”应该被分解成多组方法,每一组方法都服务于一组不同的客户程序。例子: Door可以加锁、解锁、而且可以感知自己是转载 2013-07-28 17:13:54 · 1023 阅读 · 0 评论 -
软件设计原则----开-闭原则(OCP)http://blog.csdn.net/beyondhaven/article/details/6821091
软件设计原则----开-闭原则(OCP)设计一个模块时,应当使该模块在不被修改的前提下被扩展,即可在不必修改源代码的情况下改变该模块的行为。 陈述: 软件实体(类、模块、函数等)应该是可以扩展的,同时还可以是不必修改的,更确切的说,函数实体应该:(1)对扩展是开放的当应用的需求变化时,我们可以对模块进行扩展,使其具有满足改变的新的行为。即:我们可以改变模块的功能转载 2013-07-28 17:10:59 · 784 阅读 · 0 评论 -
设计模式1——Singleton设计模式http://blog.csdn.net/chjttony/article/details/7426077
Singleton单类模式是最简单的设计模式,它的主要作用是保证在程序运行生命周期中,使用了单类模式的类只能有一个实例对象存在。单类模式实现了类似C语言中全局变量的功能,单类模式常用于注册/查找的服务。单类模式的UML图如下:单类模式有两种实现方式:饱汉模式和饿汉模式,如下:1.饱汉单类模式例子代码:[java] view plain转载 2013-07-27 16:39:43 · 1014 阅读 · 0 评论 -
设计模式10——Adapter设计模式--http://blog.csdn.net/chjttony?viewmode=contents
Adapter适配器模式是将两个不兼容的类组合在一起使用。生活中笔记本电脑和手机等数码产品的充电器就是一个适配器,将家用220V的交流电转换为笔记本或手机正常工作所需的目标电压和电流。适配器起到一种转换和包装的作用。Adapter设计模式主要目的组合两个不相干类,常用有两种方法:第一种解决方案是修改各自类的接口。但是如果没有源码,或者不愿意为了一个应用而修改各自的接口,则需要使用Adapt转载 2013-07-27 16:34:26 · 982 阅读 · 0 评论 -
Interface Segregation Principle (ISP) - OO设计的接口分隔原则
Interface Segregation Principle (ISP) - OO设计的接口分隔原则概要Clients should not be forced to depend upon interfaces that they do not use.不能强迫用户去依赖那些他们不使用的接口。换句话说,使用多个专门的接口比使用单一的总接口总要好。它包含了2层意思:- 接转载 2013-07-27 11:47:46 · 959 阅读 · 0 评论 -
推荐一个值得尊敬老外Al-Farooque Shubho的两篇文章---对于学习面向对象和设计模式很好帮助
推荐Al-Farooque Shubho 的两篇文章,很好的关于设计原则、设计模式等面向对象知识,例子很好,好多文章都被翻译在中文博客上,这是英文原文,希望对大家有所帮助!CodeProject上How I explained OOD to my wifeBy Al-Farooque Shubho, 2 Aug 2010http://www.code原创 2013-07-26 15:24:10 · 1031 阅读 · 0 评论 -
LSP里氏替换原则----正方形不是长方形和鸵鸟不是鸟的测试程序
//面向对象设计原则:LSP里氏替换原则//正方形不是长方形的测试程序#include using namespace std;//长方形类Rectangleclass Rectangle {private: int width; int height;public: int getWidth(){ return width; } virtu原创 2013-07-23 14:31:01 · 4160 阅读 · 0 评论 -
FURPS---转自百度百科
FURPS[1]FURPS是功能(function)、易用性(usability)、可靠度(reliability)、性能(performance)及可支持性(supportability)五个词英文前缀的缩写[1],是一种识别软件质量属性的模型。其中功能部份对应功能需求,另外四项则是软件系统中重要的四项非功能性需求,有时会特别用URPS来表示此四项非功能性需求。 FURPS可分转载 2013-07-22 09:40:41 · 1497 阅读 · 0 评论 -
xmi 转自百度百科
xmiXMI(XML-based Metadata Interchange) 使用扩展标记语言(XML),为程序员和其它用户提供元数据信息交换的标准方法。XMI的目的在于帮助使用统一建模语言(UML)以及不同语言和开发工具的程序员彼此交换数据模型。XMI也可用于交换数据仓库信息。XMI格式有效地标准化了任意元数据集的描述,它要求用户跨越多个工业和操作环境而使用同一种方式读取数据。转载 2013-07-19 10:02:42 · 1398 阅读 · 0 评论 -
面向构件 面向服务 面向模式
面向构件 最近,人们开始关注于通过有计划地集成现有的软件部分来进行软件开发。这通常称为基于构件的开发(Component-Based Development, CBD)或基于构件的软件工程(Component-Based Software Engineering,CBSE),而其中的各个部分称为构件,在此我们通称为面向构件。关于到底什么是构件、什么不是构件的问题有很多不同意见,但无转载 2013-07-02 17:11:47 · 2362 阅读 · 0 评论 -
用C++的模板类定义一个万能数组,数组元素类型任意,数组大小也任意
/*用模版类实现一个万能数组,数组类型可以任意给定,数组大小可以任意给定*//*函数调用 typeid(变量).name() 获取变量的类型名*/#include using namespace std;//模版类定义,一个是虚拟类型T,用来给定数组元素的类型,一个是整型值size,用来给定数组的大小,即元素个数//此类是一个万能数组,数组类型可以任意给定,数组大小可任原创 2013-04-18 13:58:51 · 12583 阅读 · 2 评论 -
面向对象分析和设计与设计模式之间的配合讲解
在进行面向对象分析和设计的教授过程中,可以将设计模式作为优秀的面向对象分析和设计的例子。设计模式还阐明了基本的面向对象设计原则,通过设计模式学生还可以更好的理解面向对象原则。原创 2013-03-03 16:24:42 · 795 阅读 · 0 评论 -
面向对象设计的5条基本原则【转】-推荐
转自:https://jingyan.baidu.com/article/6079ad0e6546f628fe86db55.html这几天重新看了一遍《大话设计模式》,发现果然有不同的感悟,而且自己也上网找了《敏捷软件开发—原则、模式与实践》一书来看,那本书的序言中有一段话我觉得很有道理:“美的东西比丑的东西创建起来更廉价,也更快捷。”设计一个软件不关要追求代码的优雅问题,更关乎生产成本等。技术大转载 2018-01-18 20:02:47 · 331 阅读 · 0 评论