zync-mzy / blog

repository as blog, issue as article
7 stars 1 forks source link

《Head First设计模式》 #17

Closed zync-mzy closed 3 years ago

zync-mzy commented 3 years ago

1 设计模式入门

zync-mzy commented 3 years ago

2 观察者模式

zync-mzy commented 3 years ago

3 装饰者模式

class Beverage {
 public:
  virtual std::string GetDescription() { return description_; }
  virtual double Cost() = 0;

 protected:
  std::string description_ = "unknown";
};
// 被装饰者
class Espresso : public Beverage {
 public:
  Espresso() { description_ = "Espresso"; }
  virtual double Cost() { return 1.99; }
};
// 装饰者
class Mocha : public Beverage {
 public:
  Mocha(Beverage* b) { beverage_ = b; }

  virtual std::string GetDescription() {
    return beverage_->GetDescription() + ", Mocha";
  }
  virtual double Cost() { return .20 + beverage_->Cost(); }

 private:
  Beverage* beverage_;
};
zync-mzy commented 3 years ago

4 工厂模式

zync-mzy commented 3 years ago

5 单件模式

zync-mzy commented 3 years ago

6 命令模式

zync-mzy commented 3 years ago

7 适配器模式与外观模式

zync-mzy commented 3 years ago

8 模板方法模式

zync-mzy commented 3 years ago

10 状态模式

zync-mzy commented 3 years ago

9 迭代器与组合模式

zync-mzy commented 3 years ago

11 代理模式

zync-mzy commented 3 years ago

12 复合模式

zync-mzy commented 3 years ago

13 与设计模式相处