设计/UML/MDA
文章平均质量分 76
superbeck
------------------------------------------------ 出生在太行山下, 求学于嘉陵江畔, 奋斗在长江之尾。。。。。。
github博客见: http://superbeck.github.io
展开
-
用MDA和传统方法开发一个三层架构应用的对比
本文中主要对比了MDA开发方法的快速,高品质。不过MDA开发方法另外一点重要作用是体现在维护阶段的。在公司做了两年多之后,可以很明确的了解到,很多企业开发项目的生命周期都是很长的,一般5年以上到10几年都是有的。可是由于人员更替的快速以及项目的调整等因素,很多项目到后期维护的时候,都不一定是原来开发的成员所担当了。所以维护过程一般来讲,都要比开发还要困难。而且有调查表明,维护阶段的成本消耗在很多时转载 2008-11-28 15:12:00 · 1296 阅读 · 0 评论 -
设计模式:Bridge模式
如果你想要写一个游戏,并且想让这个游戏同时支持PC和手机,那么怎么样的设计可以避免写两套代码,并且不影响可扩展性呢?说起来还是比较简单的,只要把对平台的依赖部分抽取成抽象的接口(比如说绘图部分),并且针对抽取出来的接口,分别实现PC版和手机版就行了。系统的其他部分只要调用那套抽取出来的接口就可以完成所有的功能。这样来看,系统的其他部分是不依赖具体的平台的,也就具有了良好的扩展性。这个就是Bridge模式的应用。原创 2010-10-27 18:06:00 · 7218 阅读 · 2 评论 -
面向对象设计的设计原则
在设计面向对象的程序的时,模式不是一定要套的,但是有一些原则最好是遵守。这些原则共有七个,包括:开闭原则、里氏代换原则、依赖倒转原则、合成/聚合复用原则、迪米特法则、接口隔离原则,单一职责原则。原创 2010-06-11 16:59:00 · 3700 阅读 · 0 评论 -
设计模式:职责链模式(Chain of Responsibility)
链表,想必有太多人用过了,但是基于链表的设计模式?职责链模式正好是这样的一个。当然职责链模式可以有多种形式,并不是一定要求是一条单链的。关于这一点,我们后面会提到的。原创 2010-07-19 07:55:00 · 1393 阅读 · 0 评论 -
设计模式:Command模式
Commad模式是一种对象行为模式,它可以对发送者(sender)和接收者(receiver)完全解耦(decoupling)。("发送者" 是请求操作的对象,"接收者" 是接收请求并执行某操作的对象。有了 "解耦",发送者对接收者的接口一无所知。)简单说明 简单来看,在对象A调用了对象B的一个方法,这样对象A就可以看做一个发送者,对象B就是原创 2010-05-07 14:07:00 · 1156 阅读 · 0 评论 -
设计模式:Proxy模式
Proxy(代理),字面意思很容易理解,简单来说,找个中间人来帮助完成某事情。从设计上来看,Proxy模式也是一个比较容易理解的模式。但是它有哪些种类,哪些优缺点,和其他的一些模式有什么区别呢?这就需要稍微的详细了解一下了。 定义 为其他对象提供一种代理以控制对这个对象的访问。 分类原创 2010-03-23 22:18:00 · 1184 阅读 · 0 评论 -
设计模式:Visitor模式
Visitor模式是一个用起来很简单,理解起来可能稍微有一点困难的模式。不过明白了之后就清楚了,其实也是非常的简单。问题需要向对象结构中增加新的方法,但是增加起来会很费劲或者会破坏设计。 案例举一个例子。假设我们有一组机器(Windows,Unix,Linux,Mac等),每种机器都有自原创 2010-02-25 14:02:00 · 13143 阅读 · 5 评论 -
设计模式:Observer模式
在做面向对象的软件开发过程中,有时候会碰到这样一种情况:某一个对象的变化会导致很多个对象同时发生变化,必须是及时的变化,而且受影响的对象也是未知的。Observer模式正好是解决这类问题的拿手方案。 定义观察者模式定义了对象间的一种一对多依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。The Observer Patter原创 2009-10-02 08:05:00 · 1359 阅读 · 0 评论 -
设计模式:Prototype模式
在软件开发中,有时候可能会需要创建一些特别复杂的对象,如果系统中已经存在同样类型的对象,并且不同的属性个数相差不大的话,用Prototype模式可能是一个理想的选择。 定义:用原型实例指定创建物件的种类,并且通过拷贝这些原型创建新的物件。 Prototype 模式允许一个物件再创建另外一个可定制的物件,根本无需知道任何如何创建的细节,工作原理是:通过将一个原型物件传给那个要发原创 2009-09-17 07:45:00 · 2211 阅读 · 1 评论 -
设计模式:Builder模式
Builder模式主要用于构建复杂的对象,对象的各个部件可能会有剧烈变化,而构建的过程是固定的。这个时候就可以使用Builder模式把对象的构建过程抽取出来。 作用:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。举例来讲,同样一批建筑工人,都会打地基,砌砖,贴瓷砖等等基本的建筑操作,也就是说,你可以用他们来盖商业楼,盖住宅原创 2009-09-14 07:25:00 · 1389 阅读 · 0 评论 -
StarUML: 插件加载失败的解决方法
某次在安装并使用StarUML的时候,遇到了一个问题:在菜单Tools下面死活都找不到Java的逆向工程的菜单。仔细的查看了一下,发现最下面的小窗口Output栏中有这样的异常信息:Failed to load the Add-in "JavaAddIn"。 一开始,先上网搜索了一下,没有search到解决方法。然后就到StarUML的安装目录下看了一下这些Add-In到底是以什么原创 2009-07-05 23:21:00 · 10249 阅读 · 13 评论 -
设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式。其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性。本文是本人对这三种模式学习后的一个小结以及对他们之间的区别的理解。 简单工厂简单工厂模式的工厂类一般是使用静态方法,通过接收的参数的不同来返回不同的对象实例。不修改代码的话,是无法扩展的。 工厂原创 2009-08-14 12:56:00 · 82125 阅读 · 41 评论 -
设计模式:Flyweight模式(享元模式)
记得在大学时,用当时的那台电脑玩魔兽,一旦视野内存在大量兵的时候,游戏就会暂时卡掉,无法进行任何操作。那就是因为系统new出来太多的兵,所需内存空间已经超出了硬件可提供的空间而导致游戏卡掉的。事实上,当遇到类似问题时,我们可以优先考虑一下Flyweight模式。原创 2010-11-02 10:19:00 · 1597 阅读 · 0 评论