第二次作业
一、UML
1.UML概述
统一建模语言是一种直观化、明确化、构建和文档化软件系统产物的通用可视化建模语言。捕捉被建构系统的有关决策和理解,用来理解、设计、浏览、配置、维护以及控制系统的信息。建模的目的模型可以帮助我们按照实际情况对系统进行可视化;模型允许我们详细说明系统;模型给出了我们一个指导我们构造系统的模板;模型对我们做出的决策进行模板化;
2. UML目标
它的第一个且最重要的目标:UML是所有建模人员可以使用的通用建模语言。它基于许多计算机团体的共识,是一种非私有的语言。UML不是完整的开发方法,它不包括逐步的开发流程,但它包括了所有的必要概念。它的最后一个目标是在能对众多系统建模的同时 尽可能的简洁。
3.UML概念范围
(1)静态结构
(2)动态行为
(3)实现构造
(4)模型组织
(5)扩展机制
4.UML体系的三个组成部分
(1)UML基本构造快
事物:
行为事物
结构事物
分组事物
注释事物
关系:
依赖关系
关联关系
泛化关系
实现关系
图:
类图
对象图
用例图
顺序图
协作图
状态图
活动图
组件图
部署图
(2)UML规则
命名、范围、可见性、完整性、执行
(3)UML公共机制
规格说明、修饰、通用划分、扩展机制,其中扩展机制是对uml元素的扩展, 包括约束、构造类型和标记值。
二、设计模式
设计模式描述了软件过程中的某一类常建问题的一般性解决方案。面向对象的三大特征。封装:隐藏内部实现、继承:复用现有代码、多态:改写对象行为。
1.设计模式的原则
应该便于程序的升级和维护,尽可能降低各个类之间的耦合度,使各个类相对独立,应从代码复用的角度去设计系统,避免重复造轮子。
2.六大设计原则
2.1单一职能原则(SRP):
每一个类实现的功能和作用要单一,比如实体类实现的是单纯的属性和get,set方法,是为了能生成一个纯净的类。实现逻辑操作的要重新生成一个类,不要在实体类中给出复杂业务逻辑的操作。调用到业务逻辑的服务操作也要重新生成一个类,边界尽量清晰。
2.2.里氏替换原则:
讲的是透明继承的设计理念,如果不是使用覆盖(override)刻意改写父类方法实现的话,子类对象必需能够无缝透明的替代父类对象。
子类可以继承父类的私有方法以外的所有方法和非私有的属性,重写可以覆盖掉父类中同名同参数的方法。
子类必须完全实现父类的方法。
子类可以有自己独立的属性和方法。
覆盖或实现父类的方法时输入参数可能会被放大。(如果子类给的参数范围大于父类,不会被执行到,要求子类给参数类型必须等于父类)。
覆盖或者实现父类的方法时输出可以被缩小范围。(父类的返回参数类型必须大 于子类)
具体方法是:子类使用前置条件(形参)相同的override方法覆盖父类方法,或使用前置条件(继承链上)同级或更宽松(父类级别)的overload方法。
2.3.依赖倒置的原则
使用接口,就是面向接口编程。需要注意的是使用构造函数传递对象、使用setter方法传递和使用方法签名的形参传递,书上写的这三种分别称为构造函数注入、setter依赖注入和接口注入。
2.4.接口隔离
接口实现的作用越简单越好,最好是只针对某一项相同对象的。
2.5.迪米特法则:
类之间的调用,最好不要知道被调用者中其他信息,只要知道对应的接口即可。具体如何实现不需要知道,或者越少越好。
2.6.开闭原则:
使用extends(继承)的方法实现原有的类的方法以及扩展其中的应用,应用去系统升级,替换实现类即可,不需要太多变动。书上提到抽象约束:实现类不允许出现接口或抽象类中不存在的public方法;抽象层应保持稳定,一旦确定即不允许修改。

浙公网安备 33010602011771号