面向对象思想与设计模式分类

抽象
抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

继承
继承是从已有类得到继承信息创建新类的过程。继承实现了 IS-A 关系,子类对象必须能够替换掉所有父类对象。

封装
利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外的接口使其与外部发生联系。用户无需关心对象内部的细节,但可以通过对象对外提供的接口来访问该对象。

多态
方法重载,实现的是编译时的多态性(前绑定)
方法重写,实现的是运行时的多态性(后绑定),运行时多态是面向对象的精髓
要实现多态需要做两件事:
1)方法重写(子类继承父类并重写父类中已经的或抽象的方法)
2)对象造型(用父类型引用调用子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)

按照应用目标分类,设计模式可以分为创建型模式、结构型模式和行为型模式。

创建型模式:是对对象创建过程的各种问题和解决方案的总结。

常见的创建型模式有:工厂模式、单例模式、构建器模式、原型模式等

结构型模式:是对软件设计结构的总结,关注于类、对象继承、组合方式的实践经验。

常见的结构型模式有:桥接模式、适配器模式、装饰者模式、代理模式、组合模式、外观模式、享元模式等

行为型模式:是从类或对象之间交互、职责划分等角度总结的模式。

常见的行为型模式有:策略模式、解释器模式、命令模式、观察者模式、迭代器模式、模板方法模式、访问者模式等

引申问题:在Spring中使用了哪些设计模式?

1)在BeanFactory和ApplicationContext中应用工厂模式

2)在Bean的创建中,Spring为不同scope定义的对象,提供了单例和原型等模式实现。

3)在各种事件监听器中,应用了观察者模式

4)在JdbcTemplate中应用了模板模式

原文地址:https://www.cnblogs.com/flyuz/p/10542034.html