码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象

时间:2020-08-18 13:56:46      阅读:63      评论:0      收藏:0      [点我收藏+]

标签:顺序   事务   行为图   原型   builder   相关   方法   header   过程   

面向对象



需求开发

需求分析-OOA-相关概念

对象
类(实体类、边界类(与其他类进行交互)、控制类)
抽象(不能直接控制对象,要通过对象运行的接口)
封装
继承与泛化
多态(同样操作,控制不同对象,表现出不同结果)
接口(特殊类,只有方法定义,无方法实现)
消息
组件
模式和复用

设计原则

Ⅰ、单一职责原

设计目的单一的类(耦合度)

Ⅱ、开放-封闭原则

对扩展开放,对修改封闭(多增少改)

Ⅲ、李氏替换原则

子类可以替换父类(少做重载)

Ⅳ、依赖倒置原则

要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程(依赖接口,少受实现类)

Ⅴ、接口隔离原则

使用多个专门的接口比使用单- -的总接口要好

Ⅵ、组合重用原则

要尽量使用组合,而不是继承关系达到重用目的

Ⅶ、迪米特原则(最少知识法则)

一个对象应当对其他对象有尽可能少的了解

UML

内容

构造快
规则    
公机制

构造块

Ⅰ、事务

	结构事物
	行为事物
	分组事物
	注释事物

Ⅱ、关系

	依赖
	关联
	泛化
	实现

Ⅲ、图

结构图/静态图

类图
对象图
包图
组合结构图
构建图
部署图
制品图

行为图/动态图

用例售(用例):外部和内部交互
顺序图/序列图:时间顺序
通信图/协作图
定时图
状态图
活动图:状态变迁、转移情况
交互概览图

设计模式

概念

Ⅰ、架构模式:

软件设计中的高层决策,全局去看,例如C/S结构就属于架构模式,架构模式反映了开发软件系统过程中所作的基本设计决策

Ⅱ、设计模式:

主要关注软件系统的设计,与具体的实现语言无关,构建的设计时使用,局部去看

Ⅲ、惯用法:

是最低层的模式,关注软件系统的设计与实现,实现时通过某种特定的程序设计语言来描述构件与构件之间的关系。每种编程语言都有它自己特定的模式,即语言的惯用法。例如引用-计数就是C+ +语言中的一种惯用法

设计模式的分类

创建型模式

根据需要创建对象

Ⅰ、工厂方法(factory method)模式

	定义一个创建对象的接口,但由子类决定需要实例化哪-一个类。工厂方
	法使得子类实例化的过程推迟

Ⅱ、抽象工厂(abstract factory)模式

	提供一个接口,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类

Ⅲ、原型(prototype)模式

	用原型实例指定创建对象的类型,并且通过拷贝这个原型来创建新的对象

Ⅳ、单例(singleton)模式

	保证一一个类只有一 一个实例,并提供-个访问它的全局访问点

Ⅴ、构建器(builder)模式

	将一个复杂类的表示与其构造相分离,使得相同的构建过程能够得出不
	同的表示

结构型模式

处理类和对象的组合问题

Ⅰ、适配器(adapter)模式

	将一个类的接口转换成用户希望得到的另一种接口。它使原本不相容的接口得以协同工作(转换接口)

Ⅱ、桥接(bridge)模式

	将类的抽象部分和它的实现部分分离开来,使它们可以独立地变化(继承树拆分)

Ⅲ、组合(composite)模式

	将对象组合成树型结构以表示“整体部分”的层次结构,使得用户对单个对象和组合对象的使用具有一致性(树形目录结构)

Ⅳ、装饰(decorator)模式

	动态地给一个对象添加一 些额外的职责。 它提供了用子类扩展功能的个灵活的替代,比派生一个子类更加灵活(附加职责)

Ⅴ、外观(facade)模式

	定义一个高层接口,为子系统中的组接口提供个致的外观,从而简化了该子系统的使用(对外统一接口)

Ⅵ、享元(flyweight)模式

	提供支持大量细粒度对象共享的有效方法

Ⅶ、代理(proxy)模式

	为其他对象提供一种代理以控制这个对象的访问

行为型模式

描述类/对象交互的情况,职责分配

Ⅰ、职责链(chain of responsibility)模式

	通过给多个对象处理请求的机会,减少请求的发送者与接收者之间的耦合。将接收对象链接起来,在链中传递请求,直到有一一个对象处理这个请求(传递职责)

Ⅱ、命令(command)模式

	将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,将请求排队或记录请求日志,支持可撤销的操作(日记记录,可撤销)

Ⅲ、解释器(interpreter)模式

	给定-一种语言,定义它的文法表示,并定义一个解释器,该解释器用来根据文法表示来解释语言中的句子(构造翻译虚拟机)

Ⅳ、迭代器(iterator)模式

	提供-一种方法来顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示(常用于枚举类型/数组)

Ⅴ、中介者(mediator)模式

	用一个中介对象来封装一系列的对象交互。它使各对象不需要显式地相互调用,从而达到低耦合,还可以独立地改变对象间的交互(不直接引用)

Ⅵ、备忘录(memento)模式

	在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,从而可以在以后将该对象恢复到原先保存的状态(存储对象相关信息)

Ⅶ、观察者(observer)模式

	定义对象间的-种对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新

Ⅷ、状态(state)模式

	允许-一个对象在其内部状态改变时改变它的行为(状态变成类)

Ⅸ、策略(strategy)模式

	定义一系列算法,把它们一一个个封装起来,并且使它们之间可互相替换,从而让算法可以独立于使用它的用户而变化(多方案切换)

Ⅹ、模板方法(template method)模式

	定义一个操作中的算法骨架,而将- -些步骤延迟到子类中,使得子类可以不改变一一 个算法的结构即可重新定义算法的某些特定步骤

ⅩⅠ、访问者(visitor)模式

	表示一个作用于某对象结构中的各元素的操作,使得在不改变各元素的类的前提下定义作用于这些元素的新操作

参考

软件设计师考试教程

面向对象

标签:顺序   事务   行为图   原型   builder   相关   方法   header   过程   

原文地址:https://www.cnblogs.com/halfsugar-ss/p/13511915.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!