如果您的设计遵守了“开-闭原则”,那么这个设计一定是易维护的,因为在设计中增加新的模块时,不必去修改设计中的核心模块。 3.高内聚-低耦合原则
如果类中的方法是一组相关的行为,则称该类是高内聚的,反之称为低内聚的。 所谓低耦合就是尽量不要让一个类含有太多的其它类的实例的引用,以避免修改系统的其中一部分会影响到其它部分。
【其它基本原理】ppt review-32 Keep It Simple Stupid (KISS)
尽量保持代码简单而不要过分简单,这样可以避免不必要的复杂性 Don’t Repeat Yourself (DRY)
通过抽象使系统中不要出现重复的部分 Tell, Don’t ask
告诉你的对象要执行的操作,而不要询问(判断)它的状态,然后据此做决策 You ain’t Gonna need it (YAGNI)
偏好必要的功能需求,推迟可能需要的其它特色、 Separation of Concerns (SoC) 关注点分离
Minimize The Accessibility of Classes and Members 寻求类和其成员的访问性最小
Use Accessors and Mutators, Not Public Members 使用访问器和赋值函数,不要使用公共成员 Favor Composition Over Inheritance 偏好组合而不是继承
Coad's Rules(Use inheritance only when all of the following criteria are satisfied) Program To An Interface, Not An Implementation 面向接口而不是实现编程
22、组合,继承,针对接口编程,黑盒,白盒重用
继承:新功能的重用方法获得通过扩展现有对象的实现 泛化类(超类)明确了共同的属性和方法 专业类(子类)扩展了实现额外的属性和方法 针对接口编程又称为面向接口编程,针对接口编程就是要先设计以系列的借口,把设计和实现分开,使用时之需要引用接口即可,也由于系统各部分的解耦合。针对接口编程是为了提高程序的课维护性、可伸缩性和可复用性。如果你在一个类中直接使用另外的一个,这样就把两个类紧密联系在一起了,以后如果想做出改变就很难了。如果针对接口编程,当业务变
化时我们只需要用一个新的类实现接口即可
23、MVC模式 PPT9 16页
UInot the Java Swing libraries, but our GUI classes based on SwingSwingWebDomainSalesPaymentsTaxesTechnical ServicesPersistenceLoggingRulesEngine
UI layer has views,Domain layer has model
separating the visual, interaction and data components Model
maintains the state and data of the application - the XML document View
A rendering of the XML document Controller
The user interface presented to the user to manipulate the application Makes it very easy to have multiple different displays of the same information
? MVC是模型-视图-控制器的缩写
? 它代表了一种软件设计模式,1978年开发在施乐帕克研究中心(!) ? 它解释了一种分离视觉、交互和数据组件的方法。 ? 非常受欢迎,广泛用于Java和其他语言 模型 :维护应用程序的状态和数据的XML文档 视图 :XML文档的呈现
控制器 :用户界面呈现给用户操作的应用程序 为什么使用
Mvc模型
? “模型”包含的数据
? 有一些方法来访问并可能更新它的内容。 ? 通常,它实现了一个允许模型交互的接口。
? 实现了一个允许退出和取代的接口,并不伴随编程改变 Mvc控制器
? 用户与控制器进行交互。 ? 它解释鼠标移动,点击按键等
? 活动与模型沟通,如:删除行,插入行等 ? 它的模型的交互间接导致视图的更新 Mvc视图
? 视图提供模型的可视化表示。
? 在任何时候都可以有多个视图表示模型。
? 例如,一个公司财务状况随着时间的推移可以用一个表和图表示。 ? 只有两种不同的视图表示相同的数据。
? 当模型更新时,所有视图被通知然后有机会更新。 当模型更新时,所有视图被通知然后有机会更新
Model(模型)表示应用程序核心(比如数据库记录列表)。 View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。 组成元素:模型、视图、控制器;
交互关系:用户通过视图发出一个请求,该请求被转发给控制器。控制器接收后决定使用什么模型,然后将请求转发给相应的模型。模型处理完后将相应的数据返回给控制器。控制器接收完数据后选择显示这些数据的相应的视图,并将视图返回给用户
24、企业应用架构在各层有那些主要的模式,各层,各层的各种模式的定义和结构内容(展现层,领域层,数据源层)
三层架构的系统:表现层实现用户界面,在领域层实现领域逻辑,在数据源层存取数据 1.表现层(Presentation):
提供服务、显示信息(如在WINDOWS或HTML页面中,处理用户请求,HTTP请求,命令行调用,批处理API) 表现逻辑处理用户与软件间的交互。主要职责是: 向用户显示信息
把从用户那里获得的信息解释成领域层或数据源层上的各种动作。 2.领域层(Domain):
领域逻辑,系统中真正的核心。也称为业务逻辑,它就是应用程序必须做的所有领域相关工作:包括根据输入数据或者已有数据进行计算,对从表现层输入的数据进行验证,以及根据从表现层接收的命令来确定应该调试哪些数据源逻辑。 领域逻辑(业务逻辑),它就是应用必须做的所有领域相关的工作:
根据输入数据或已有数据进行计算 对从表现层输入的数据进行验证
根据从表现层接收的命令来确定应该调度哪些数据源逻辑。 3.数据源层(Data Source):
与数据库、系统消息系统、事务管理器及其他软件包通信。最主要的数据源逻辑就是数据库,主要责任是存储持久数据。数据源逻辑主要关注与其他系统的交互,这些系统将代表应邀完成相关的任务。主要的数据源逻辑就是数据库,它的主要职责是存储持久数据。
三层的关系:领域层是核心!表现层是系统对外提供服务的外部接口;数据源层是系统使用外部服务的接口
25、Larman的敏捷UP设计方法的具体步骤
(1) 初始:大体上的构想、业务案例、范围和模糊评估。
(2) 细化:已精化的构想、核心架构的迭代实现、高风险的解决、确定大多数需求和范围以及进行更为实际的评估。