设计模式初体验
设计模式对于我来说,仿佛就是一种解题策略,不是说曾今没有设计模式的方法的时候写的代码不好.
只是就像建房子那样,土房子可以建为高楼大厦么?
我想是可以的.-----埃及金字塔.
可是埃及金字塔毕竟已近失传了,消耗了至少4000人的劳动力.
没有刚开始很好的设计规划,将来的建设将会消耗非常之多的人力和物力.
设计模式所遵循的原则某一方面其实也是对于人类更省力的探索,系统的稳定性可扩展性越好,人类投入到开发的时间越少.
或许这就是设计模式带来的意义.
设计模式的几大原则(常用)
单一职责原则 一个类只负责一个功能领域中的相应职责
>> 这个职责所带来的优势,就是单一功能耦合性大大下降.这样对于 一个功能性代码的重复利用性将会大大提高
开闭原则 软件实体应对扩展开放,而对修改关闭
>> 这个职责所带来的优势,就是即软件实体应尽量在不修改原有代码的情况下进行扩展。
>> 主要体现在C++虚函数的应用.继承可以带来多种功能的实现.
里氏代换原则 在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象。
>> 这个职责所带来的优势,就是总而言之就是,自由性能大大增加.
其他的自己去CSDN大牛博客上找吧,我个人能力有限如果有更好的理解方式,请评论在下方.
两个大牛的博客
设计模式主要解决的问题
对应不同状态的不同处理函数的实现
状态模式
隐藏内部对象实现过程
工厂模式
算法的替换
策略模式
在已有功能上实现增加功能和减少功能,以适应新的功能
适配器模式
确保类的实例只有一个实例
单例模式
事物的实现有一定的顺序
模板方法模式
从一个实例复制为多个实例
原型模式 C++通过拷贝构造函数实现
由指挥一个东西生成的具体步骤
建造者模式
一个东西的实现不需要使用者知道那么多步骤,或者是那么多步骤是一个执行的必要条件,提供这个执行,影藏大部分步骤
外观模式
整体和部分的关系,树形状的结构
组合模式
代理模式没看懂
多种实例但是没必要每个都创建,可以创建一个共享池
享元模式
多种的继承可以转换为组合,减少系统的耦合
桥接模式
给一个东西增加功能而不是大改原来的东西的代码
装饰模式
返回以前某一个状态主要是"="的重写
备忘录模式
信息不直接交替通过一个中介进行交替,放置错综复杂的关系出现
中介模式
信息的推送从底部到顶部
职责链模式
信息的推送
观察者模式