设计模式是解决常用软件问题的经验总结。可以堪称是一本代码设计宝典,帮助开发人员完成软件设计工作。
设计模式一共分为三大类:
创建型模式:提供对象创建的机制,提升已有代码的灵活性和可复用性。(例如:单例模式、工厂模式、建造者模式等)
结构型模式:用于将对象和类组合成较大的、可重用的结构,同时保持灵活性和效率。(例如:代理模式、装饰者模式等)
行为模式:负责对象间的高效沟通和责任传递委派。(例如:责任链模式、中介者模式、模板模式、迭代器模式等)
设计模式中的六大设计原则:
1:单一职责原则(single responsibility principle):一个类只负责一件事。
2:开放封闭原则(open close principle):对扩展开放,对修改关闭。
3:里氏替换原则(liskov substitution principle):用来指导在继承关系中,子类该如何设计,子类的设计要保证子类在替换父类的时候,不改变原有程序的逻辑及不破坏原有程序的正确性。
(和多态的区别:里氏替换原则适用于继承关系中子类和父类之间的关系。多态是面向对象的一种基本特性,可应用于所有面向对象编程语言中。里氏替换原则主要目的是确保在使用继承时,派生类可以替换基类,并确保代码的一致性和准确性。多态的主要目的是增加代码的灵活性和可扩展性,同时减少重复代码。)
4:接口隔离原则(interface segregation principle):客户端不应该依赖它不需要的接口。
5:依赖倒置原则(dependence inversion principle):高层模块不应该依赖于底层模块,而应该依赖其抽象。
例如:一个”车“对象依赖了一个汽油对象,”车“的构造方法中传参为汽油对象。这种就是违背了依赖倒置原则,因为”车“对象是高层模块,”车“的分类很多,”汽油“是底层模块,他是上层模块是”油“(汽油,机油,柴油之类的),这样高层模块以来了底层模块。更改方式是将”车“依赖的”汽油“对象更新成抽象的”油“对象,当需要传入”汽油“的时候,就传入”油“对象的实现”汽油“。
6:迪米特法则(law of Demter):尽量减少对象间的依赖。