OOP->设计原则->设计模式->架构模式

本文详细介绍了面向对象的四大特性:抽象、封装、继承和多态,并探讨了类与类之间的关系,如泛化、实现、依赖、关联、聚合和组合。接着,阐述了面向对象的设计原则,如封装、抽象、信息隐藏、关注点分离、单一职责、接口隔离、松耦合、里氏代换、契约式设计、开闭原则、依赖倒置和最少知识原则。此外,文章还列举了部分设计模式,如单例、工厂方法、抽象工厂和观察者模式,以及架构模式,如分层架构、管道和过滤器、插件、中介者和面向服务架构。这些原则和模式是提高软件质量、可扩展性和可维护性的关键。
摘要由CSDN通过智能技术生成

这次,想码一下软件开发的内功心法:面向对象的基本特征,类关系,设计原则,设计模式,架构的概念。

一、面向对象

面向对象有四个基本特征:抽象,封装,继承,多态

1. 抽象

  • 忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口)。抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一个数据抽象,而是过程抽象.
  • 数据抽象 –>表示世界中一类事物的特征,就是对象的属性,比如鸟有翅膀,羽毛等(类的属性)
  • 过程抽象 –>表示世界中一类事物的行为,就是对象的行为,比如鸟会飞,会叫(类的方法)

2. 封装

  • 封装就是把过程和数据包围起来,对数据的访问只能通过特定的界面,如私有变量,用set,get方法获取
  • 封装是为了隐藏内部实现细节,是保证软件部件具有优良的模块性的基础。封装的目标就是要实现软件部件“高内聚,低耦合”,防止程序之间的相互依赖性带来的变动影响。
  • *

3. 继承

一种联结类的层次模型,并且允许和鼓励类的重用,提供一种明确表达共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),原始类称为新类的基类(父类)。派生类可以从它的父类哪里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。因此可以说,继承为了重用父类代码,同时为实现多态性作准备。

4. 多态

多态是指允许不同类的对象对同一消息做出不同的响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题。总的来说,方法的重写,重载与动态链接构成多态性。

动态链接 –>对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将调用子类中的这个方法,这就是动态链接。

二、类与类之间的关系

类与类或接口之间有六种关系,可以分为纵向关系和横向关系(纵向关系强于横向关系),纵向关系有泛化,实现;横向关系有依赖,关联,聚合组合。横向关系的强弱:依赖(可能发生关系,也可能不)<关联(有联系)<聚合(整体与部分,可分)<组合(整体与部分,生死关系)

2.1 泛化

  • 泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类。
  • 在UML中,泛化关系用带空心三角形的直线来表示。

2.2 实现(接口)

  • 是用来规定接口和实现接口的类或者构建结构的关系,接口是操作的集合,而这些操作就用于规定类或者构建的一种服务。
  • 接口之间也可以有与类之间关系类似的继承关系和依赖关系,但是接口和类之间还存在一种实现关系(Realization),在这种关系中,类实现了接口,类中的操作实现了接口中所声明的操作。
  • 在UML中,类与接口之间的实现关系用带空心三角形的虚线来表示。

2.3 依赖

  • 假设A类的变化引起了B类的变化,则说名B类依赖于A类。
  • 依赖关系(Dependency) 是一种使用关系,特定事物的改变有可能会影响到使用该事物的其他事物,在需要表示一个事物使用另一个事物时使用依赖关系。大多数情况下,依赖关系体现在某个类的方法使用另一个类的对象作为参数。
  • 在UML中,依赖关系用带箭头的虚线表示,由依赖的一方指向被依赖的一方。
  • 依赖关系是一种很弱的关系,具体某个对象可能会依赖于另一
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值