什么是设计模式?
设计:(1)设计一定是有原则的(2)设计的最后结果,一定能体现出它的优点
模:就是模式、模板的意思
式:就是方式、方法的意思
模式,就是可以作为模型或者模板的方式或方法,类似于范例。(就是提供一种已经为我们搭好的框架,是我们进而去完善我们的内容)
设计模式(Design pattern):是指在软件开发中,经过验证的,用于解决在特定环境下、重复出现的、特定问题的解决方案。
设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
常见的23种设计模式:
创建型模式(抽象了对象实例化的过程,用来帮助创建对象的实例):抽象工厂模式(Abstract Factory)、建造者模式(Builder)、工厂方法模式(Factory Method)、原型模式(Prototype)、单例模式(Singleton)
结构型模式(描述如何组合类和对象以获得更大的结构):适配器模式(Adapter)、桥接模式(Bridge)、组合模式(Composite)、装饰模式(Decorator)、外观模式(Facade)、享元模式(Flyweight)、代理模式(Proxy)
行为型模式(描述算法和对象间职责的分配):职责链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、协调者模式(Mediator)、备忘录模式(Memento)、观察者模式(Observer)、状态模式(State)、策略模式(Strategy)、模板方法模式(Template Method)、访问者模式(Visitor)
一个好的软件在设计好之后,应该对扩展是开放的(即软件写好后,任何功能的添加不应该修改软件的代码,而是应该去扩展内容);对修改是封闭的(即一个软件写好以后,是不允许再次打开去修改里面的内容的)。这里提到的即使设计模式所要遵循的一大重要原则——开放封闭原则。
面向对象的三大特征:封装、继承、多态------https://blog.csdn.net/qq_43236424/article/details/106348078
封装看似是一件很简单的事情,但是实际上封装是很难的。比如像我刚接触设计模式之前,如果去是实现加减乘除四则运算,最直接的就是选择无脑的将它们分别写成四个函数然后放到一个类里面,然后再在这个类里面加一个if、else if、else的判断函数就完成。而当我开始学习和了解了设计模式,才明白这样的思路简直糟糕的不能再糟糕了。就算是实现加减乘除四则运算这样简单的功能,稍微学习过一点设计模式也应该知到要最起码五个类才能实现。即先要将加、减、乘、除分别写到四个类当中去,对,没有错,写到四个类当中(这就是一种好的封装)!然后再写一个父类(在设计模式中,父类多为抽象类或者接口,而不是简简单单的普通的类,因为抽象类或者接口相较于普通的类能更好的实现多态),与加减乘除四个类是继承关系。
多态是指相同的操作或者函数、过程可作用于多种类型的对象上并获得不同的结果;不同的对象,收到同一消息可以产生不同的结果。
多态的几个条件:(1)必须要有抽象类或者接口,或者说要有抽象方法或者接口方法(2)子类继承了抽象类或者接口,并且对抽象类或接口中的抽象方法进行了重写(3)子类对象必须赋给父类对象,用父类对象去调用子类对象中重写的抽象方法