Skip to content

Latest commit

 

History

History

设计模式

design_patterns 这是我自己写的设计模式的简单demo和一些笔记。主要参考着《大话设计模式》来编写的,谢谢作者。

看完这本书的总结 设计模式其实最重要的是将易变化的行为和不易变化的行为区分开,然后降低类与类之间的耦合。 多多思考多用工厂模式、单例模式、策略模式、观察者模式、状态模式、外观模式、代理模式,适配器模式。

总结 创建型模式 单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式。

行为性模式 解释器模式、中介者模式、访问者模式、策略模式、备忘录模式、迭代器模式 观察者模式、模板方法模式、命令模式、状态模式、职责链模式

结构性模式 适配器模式、桥接模式、组合模式、享元模式、代理模式、外观模式

设计的开始应该是从工厂方法开始,当需要更大的灵活性时,设计才需要选择其他创建者模式。

结构性模式 适配器模式、外观模式、桥接模式用的最多。 适配器用于不修改已有的类,然后做一个接口,相当于对内和对外做了隔离。用于使用老代码的时候,老代码不容易修改,只是写一个API接口来调用。 外观模式用于对客户端屏蔽内部子系统的细节。这个就是模块化的意思。 桥接模式用于解耦,类似udpserver的ucs这种全局的管理器。将多个模块统一管理,也类似于中介者模式

行为型模式 观察者模式、模板方法模式、策略模式用的多 观察者模式其实就是发布订阅,这样可以让通知者不用关心观察者要做什么动作,只需要调用回调函数就可以了。两边解耦。 有重复代码的时候,考虑模板方法模式给去解耦 策略模式主要是封装不同的算法,因为只是算法不同,实际上结构还是相同的。参考linkserver的联动库重构的if_device_t和if_freedom_device_t

一套软件最好在设计上设计为表示层、业务逻辑层和数据访问层

在业务逻辑层与表示层之间可以增加一个业务外观层(外观模式,隔离客户端与内部系统)。这样表示层如何变化,业务逻辑层都可以不用关心。

设计模式的核心还是将不变化的和变化的分开,将类与类之间的耦合降低。多多利用多态的特性,将不变和变化的行为分开