设计模式基础



面对对象泛型:


功能分解和需求变更:

功能分解:是将一个问题逐渐分解为更小功能的方法,每个函数都分解到可以管理为止。结构化程序员常使用功能分解进行程序设计。

需求变更:简单来说,需求变更就是在开发过程中,对原有的需求进行了更改,例如:增加新的需求、删除某些需求、变更需求等等。

功能分解的两大弊端:

分析人员通过分析,将问题分解为更小的问题来进行管理和解决。这些更小的问题解决起来比解决整个问题更简单。但是功能分解的一个问题在于它通常导致让一个“主程序”负责控制多个子程序。主程序所承担的责任过多,经常会产生恒非常复杂的代码。

功能分解的另一个问题在于需求变更方面。功能分解是对当前需求问题进行分解,但在应对未来需求变更过程中出现的变化却显得很是乏力。需求的变化是不可以避免的。这就导致出现一些自己不得不解决的问题。例如:新增一个模块却要到整个大模块进行修改甚至是重构 |==。


面向对象术语:

对象:对象是由其责任定义的,对象能够自己负责自己,这样就简化了使用对象的控制程序的任务。

类:对象的蓝图,为其类型的对象定义方法和数据。

属性:与对象关联的数据,也称为数据成员。

方法:与对象关联的例程。方法常与类中的函数划等号。

超类:其他的类从中派生的类,包含所有派生类都要使用的主要数据和方法和定义,也就等于父类||基类。


对象的可见性:

公开:任何对象都可见。

保护:只有这个类机器派生类的对象可见

私有:只有这个类可见


抽象类和具体类:抽象类定义了一组相关类的行为,具体类就是某一特定类型行为的类,具体类是一个概念特定、不变的实现。

继承类和派生类:继承:一个类继承了另一个类,是指它接受了该类的一些或者所有性质。起始类称为基类、超类、父类、或者泛化类,而继承类称为派生类、子类或者特花类。派生类:从一个基类特化的类,包含基类所有的属性和方法,但还可能包含其他属性或者不用的方法实现。


实例和实例化:实例:类的特定对象。实例化:创建类的一个实例的过程。


接口:

接口与类类似,但是只为起成员提供规约而不提供实现。它只含有抽象成员的抽象类很相似,编程的时候,如果需要几个类共享公共基类中没有的特性,而且希望确保每个类自己实现这些特性,就应该使用接口。


封装和多态:

封装:
  封装是实现面向对象程序设计的第一步,封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。 
 封装的意义:
  封装的意义在于保护或者防止代码(数据)被我们无意中破坏。在面向对象程序设计中数据被看作是一个中心的元素并且和使用它的函数结合的很密切,从而保护它不被其它的函数意外的修改。


多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。
编译时的多态性:
编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。 
运行时的多态性:
运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。 
编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。


实现多态:
接口多态性。
继承多态性。
通过抽象类实现的多态性。

override关键字:
重写父类中的virtual修饰的方法,实现多态。


高内聚和低耦合:

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息

内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合:一个软件结构内不同模块之间互连程度的度量。

对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。[


模式的关键特征:

名称:每个模式都有唯一用于标识的名称。

意图:模式的目的。

问题:模式要解决的问题。

解决方案:模式怎样为问题提供合适其所处环境的一个解决方案。

参与者和协作者:模式所涉及的实体。

效果:使用模式的效果。研究模式中起作用的各种因素。

实现:模式的实现方式。

一般结构:显示模式典型结构的标准图。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值