设计模式
冻融
这个作者很懒,什么都没留下…
展开
-
工厂模式(Factory Pattern)
工厂模式(Factory Pattern) 简单工厂模式: UML类图: 代码实现: class Pizza { void prepare(); void bake(); void cut(); void box(); std::string m_Name; } class CheesePizza : public Pizza { }...原创 2020-01-30 11:45:33 · 122 阅读 · 0 评论 -
设计原则
设计原则 多用组合,少用继承 封装变化 针对接口编程,不针对实现编程 为了交互对象之间的松耦合设计努力 对扩展开放,对修改关闭 依赖倒置原则 ...原创 2020-01-30 11:43:38 · 141 阅读 · 0 评论 -
装饰模式(Decorate Pattern)
装饰模式(Decorate Pattern) 描述:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的代替方案 注意:装饰者和被装饰者必须是一样的类型 缺点:利用装饰着模式,常常造成设计中有大量的小类,可能会造成使用此API程序员的困扰 代码举例: class Beverage { public: virtual std::string getDescriptio...原创 2020-01-30 11:41:44 · 199 阅读 · 0 评论 -
观察者模式(Observer Pattern)
观察者模式(Observer Pattern) 出版者 + 订阅者 = 观察者模式 在该模式中,将出版者改名为“主题”,将订阅者改名为“观察者” 描述:定义了对象之间一对多的依赖关系,这样一来,当一个对象改变状态时,其他的所有依赖者都会收到通知,并自动更新 代码举例: class Subject { public: Subject() { m_bState = false; ...原创 2020-01-30 11:37:21 · 97 阅读 · 0 评论 -
策略模式(Strategy Pattern)
策略模式(Strategy Pattern) 描述:定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的用户 UML 类图: 代码举例: class FlyBehavior { virtual void fly(); } class FBA : public FlyBehavior { virtual void fly() { st...原创 2020-01-30 11:33:24 · 116 阅读 · 0 评论