简述设计模式的概念及其特点,简述设计模式的概念及特点
什么是设计模式
设计模式(Design pattern)是一套代码设计经验的总结,这些经验被反复使用,被大多数人所知,并被分类编目。与具体语言无关,是一种观念。
只有掌握了面向对象的思想,才能更好地理解设计模式,反之亦然。
设计模式是程序员在软件工程实践过程中总结出来的一种好的编程方法。
有23种设计模式。
这23种设计模式的本质是面向对象设计原理的实际应用,以及对类的封装、继承和多态,以及类的关联和组合的充分理解。
(相关视频教程推荐:java视频)
设计模式的分类
1.创作模式
创建模式(5种):单例模式、工厂方法模式、抽象工厂、构建器模式、原型模式。
2.结构模式
结构模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式和共享模式。
3.行为模式
行为模式(11种类型):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、纪念模式、状态模式、访问者模式、中介者模式和解释者模式。
设计模式的六大原则
总原则:开闭原则
对扩展开放,对修改关闭。当程序需要扩展时,不需要修改原代码,而是对原代码进行扩展,达到热插拔的效果。所以总之,为了让程序具有可扩展性,易于维护和升级。
为了达到这种效果,我们需要使用接口和抽象类等。具体设计我们后面会提到。
1、单一责任原则
阶级变化的原因不应该超过一个,也就是说,每个阶级都应该履行单一的职责,否则,就应该分裂这个阶级。
2、里氏替代原理(Liskov替代原理)
基类可以出现的地方,子类当然也可以出现。里希特的替换原则是继承和重用的基石。只有当派生类可以替换基类,并且软件单元的功能不受影响的情况下,基类才能真正被重用,派生类也可以给基类添加新的行为。
李希特替代原则是对“开闭”原则的补充。抽象是实现“开合”原则的关键步骤。基类和子类的继承关系是抽象的具体实现,所以Richter的替换原则是实现抽象的具体步骤的规范。在Richter原则中,子类对父类的方法尽量不要重写和重载。因为父类代表一个定义好的结构,通过这个规范的接口与外界交互,所以子类不要随便破坏它。
3.依赖倒置原则。
面向接口的编程,它依赖于抽象而不是具体。用具体类写代码时,不与具体类交互,而是与具体类的上层接口交互。
4.界面分离原理
每个接口中没有子类不能使用但必须实现的方法。否则,接口将被拆分。使用多个隔离的接口比使用单个接口(将多个接口方法集合成一个的接口)更好。
5.德米特原理(最不为人知的原理)
一个类对它所依赖的类了解得越少越好。无论依赖类有多复杂,逻辑都应该封装在方法内部,通过公共方法提供给外部。这样,当依赖类改变时,该类可以受到最小的影响。
最不为人知原则的另一种表述是:只和直接的朋友交流。只要类之间存在耦合关系,就叫朋友关系。耦合可分为依赖、关联、聚集、组合等。我们把出现在成员变量、方法参数和方法返回值中的类称为直接朋友。局部变量和临时变量不是直接的朋友。我们要求奇怪的类不要作为局部变量出现在类中。
6.复合重用原则
尽量先用合成/聚合,不要用继承。
推荐教程:java入门。以上是对设计模式概念的简单介绍。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。