设计模式是高于语言的一种编程思维和习惯。每种模式在不同的语言中都可能有不同的实现方式,重要的是理解思想而非死记某个结构。
通过对以下几个教程的学习,本文对编程设计模式,尤其是游戏编程模式的思想进行总结。
23大经典设计模式:https://www.bilibili.com/video/av24176315
网友总结:https://github.com/liu-jianhao/Cpp-Design-Patterns
游戏编程模式:https://gpp.tkchu.me/
首先明确七个面对对象设计原则:
七个面对对象设计原则
原则一:(SRP:Single responsibility principle)单一职责原则又称单一功能原则
核心:解耦和增强内聚性(高内聚,低耦合)
类被修改的几率很大,因此应该专注于单一的功能。如果你把多个功能放在同一个类中,功能之间就形成了关联,改变其中一个功能,有可能中止另一个功能,这时就需要新一轮的测试来避免可能出现的问题。
原则二:开闭原则(OCP:Open Closed Principle)
核心:对扩展开放,对修改关闭。即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。
根据开闭原则,在设计一个软件系统模块(类,方法)的时候,应该可以在不修改原有的模块(修改关闭)的基础上,能扩展其功能(扩展开放)。
扩展开放:
某模块的功能是可扩展的,则该模块是扩展开放的。软件系统的功能上的可扩展性要求模块是扩展开放的。
修改关闭:
某模块被其他模块调用,如果该模块的源代码不允许修改,则该模块修改关闭的。软件系统的功能上的稳定性,持续性要求是修改关的。
原则三:里氏替换原则(LSP:Liskov Substitution Principle)
核心:
1.在任何父类出现的地方都可以用他的子类来替代(子类应当可以替换父类并出现在父类能够出现的任何地方),子类必须完全实现父类的方法。在类中调用