以前只是对设计模式有个大概的了解,实际中使用的也不是很多,
现在是时候系统学习一下设计模式了,
这是掌握了面向对象之后的下一个更高的境界!
对于设计一个软件系统,如果说面向对象是设计的武器,那么设计模式就是使用武器的招式!
一个使用了适当的设计的模式的软件系统有着良好的复用、可扩展和可维护性!
学习设计模式的好处:
掌握可复用的、高质量的解决方案;
方便团队内部之间的沟通;
从更高的视角来分析和解决问题;
判断是否拥有正确的设计,而不仅仅是可运行的设计;
改善代码的可修改性;
促进改良设计的选用,甚至在没有明确使用设计模式的时候;
发现“庞大继承体系”的替代方案。
Facade 外观模式,使用理由:
对于只使用一个复杂系统的部分功能,可以对其包装以简化其使用
隐藏一个系统,不直接暴漏给使用者
跟踪一个系统的使用
在原有的基础上改变某个系统的功能
编写一个新的简单的便于使用的系统,好过让所有人学会一个复杂的系统
举例:傻瓜相机一键拍照包装了对各种参数的自动调整,
new 操作封装了内存申请和对象初始化等操作,
重载operator new 跟踪对象的创建从而发现内存泄露。
Adapter 适配器模式,使用理由:
改变现有对象接口为希望的另一种接口,从而方便其他类的使用
增加现有对象接口功能,升级现有对象从而方便其他类的使用
举例:电源变压器、同声传译。