UML第二部分和创建型模式总结
静态视图
静态视图就是表达静态事物的,它只描述事物的静态结构,而不描述其动态行为。
静态视图分为三类:用例图、类图、包图
用例图
定义:由参与者和用例组成,以不同的视角展现系统的功能性需求,它是了解系统的第一关口
作用:
(1)获取需求 (2)指导测试 (3)为其他工作流起到指导作用
参与者:在系统之外与系统交互的某人或某事物
分类
关系
辨别包含和扩展:
包含(include):是指多个用例有共同点,然后提取出来抽象成另一个新的用例,也就是说多个用例里面包含这个新的用例,当多个用例有行为后,这个新的用例必定也执行这个行为。
扩展(extend):是指一个基础用例可以拥有一个或多个扩展用例,扩展用例可以有一个,也可以有多个,当基础用例有行为时,扩展用例不一定要执行。
以下为第一次机房收费系统的用例图:
类图
包图
创建型模式
创建型模式包括五种设计模式:工厂方法模式、建造者模式、抽象工厂模式、原型模式、单例模式。
创造型模式:创建型模式(Creational Pattern)对类的实例化过程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。
简单来讲,创建型模式就是将对象的创建与实现进行了分离,使程序更加灵活,易修改,易复用。
1.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
1.1 UML图:
1.2 模式解析:建立一个产品需要各种方法,而这些方法的步骤是稳定的,因此先定义一个Builder抽象类来提前约束这些方法(在抽象类中写下这些抽象方法),使得执行这些方法的子类必须重写这些方法;但每个子类方法内的细节却不尽相同。
所以当客户端要求生产产品A的时候,通过Director类向目标具体建造者类下达命令,进行生产;而若客户端又要要求生产产品B时,Director再向生产B的具体类下达命令即可...
1.3 模式适用情况:当建造复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时所适用的模式。
2.原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。
2.1 UML图:
2.2 模式解析:就是从一个对象中再创建另一个可定制的对象,并且这个要新创建的对象不需要知道从原型克隆过来的创建细节。
2.3 深复制与浅复制:
浅复制:被复制对象的所有变量都含有与原对象相同的值,而所有对其他对象的引用仍指向原来的对象。
深复制:将要复制的对象所引用的对象全部复制一遍。
结合值类型与引用类型来理解:对于值类型而言,浅复制与深复制没什么区别;而对于引用类型而言,浅复制就只能复制引用(只是给新对象传了地址,而值还是指向了旧对象对应的值),深复制却可以将引用的变量指向复制过的新对象。
2.4 模式适用情况:在需要重复地创建相似对象时可以考虑使用原型模式。
3.单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。
3.1 模式解析:这个模式的概念不难理解,实现方法就是在Singleton类中添加一个私有的构造函数并添加一个方法:使得这个类只能通过自己且只能建立一个自己的实例化对象。
3.2 模式适用情况:单例模式只允许创建一个对象,因此节省内存,加快对象访问速度,因此对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等。