1、三大类6大原则
1.1、总体来说设计模式分为三大类:
单原建工厂
- 创建型模式(共五种):单例模式、原型模式、建造者模式、工厂方法模式、抽象工厂模式。
装适代组享外桥
- 结构型模式(共七种):装饰器模式、适配器模式、代理模式、组合模式、享元模式、外观模式、桥接模式。
中解任命策观模
- 行为型模式(共十一):中介者模式、解释器模式、责任链模式、命令模式、策略模式、观察者模式、模板方法模式、迭代子模式、备忘录模式、状态模式、访问者模式。
1.2、6大设计原则
- Single Responsibility Principle : 单一职责原则
- Liskov Substitution Principle : 里氏替换原则
- Dependence Inversion Principle : 依赖倒置原则
- Interface Segregation Principle : 接口隔离原则
- Law of Demeter : 迪米特法则
- Open Closed Principle : 开闭原则
单一职责原则:类的设计尽量做到只有一个原因可以引起它的改变
里氏替换原则:只要父类出现的地方子类就可以出现,且替换成子类也不会出现任何错误或者异常
依赖倒置原则:针对接口编程,而不是针对实现编程
接口隔离原则:不要建立臃肿庞大的接口。即接口尽量细化,同时接口中的方法尽量少
迪米特法则: 一个对象应该对其他对象有最少的了解,也就是说一个类要对自己需要耦合或者调用的类知道的最少
开闭原则: 一个软件实体,比如类,模块,函数应该对扩展开放,对修改关闭。
3、面试
- 大白话讲设计模式:每个模式长什么样子?如果不用这个模式会有什么问题?如果用了这个模式会有什么好处?一般在企业开发中这个模式是怎么用的?
- 在电商系统里,将我们讲解的所有这些设计模式,全部在真实复杂的电商业务中去深入的使用,结合业务来设计这个模式如何运用到业务中,让我们基于设计模式开发出高内聚、低耦合、高度可扩展、维护成本低、逻辑清晰、易读易懂的代码。
- 你只有在一个真实的复杂业务系统中,实践过设计模式的运用,体会到这个东西是怎么玩儿的,这么玩儿以后好处是什么。设计模式才能转化为你自己的东西,然后以后你在自己开发的时候,可以随心所欲的使用设计模式。
- 面试,要结合你自己做过的复杂业务系统,给人家先讲一讲业务,然后说一下如果不用模式来设计这个业务的代码实现,可能会导致代码成一坨屎,但是你当时合理的运用了设计模式,将代码设计的结构如何优良,可扩展性如何的好,维护性如何的好。