DesignMode - Huoke/Linux-net-Programma GitHub Wiki

一、工厂模式

简单工厂(静态)

#include <iostream>

using namespace std;

enum NodleType{
  LANZHOU,
  PAOMIAN
};

class Nodles{
public:
    virtual void describte();
};


class LanZhouLaMian :public Nodles{
public:
    void describte(){
        cout<<" LanZhoulaMian"<<endl;
    }

};

class PaoMain: public Nodles{
public:
    void describte(){
        cout<<"PaoMian"<<endl;
    }
};


class NodlesFactory{
public:
   static Nodles createNodles(NodleType type) {
        switch(type) {
            case LANZHOU:{
                 LanZhouLaMian lanzhou;
                 return lanzhou;
             }
            case PAOMIAN:{
                PaoMain paomian;
                return paomian;
            }
        }
    }
};

int main(){
     NodleType type = LANZHOU;
     Nodles nodle = NodlesFactory::createNodles(type);
  return 0;
}

特点

  1. 它是一个具体的类,非接口抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。
  2. create()方法通常是静态的,所以也称之为静态工厂。

缺点

  1. 扩展性差(我想增加一种面条,除了新增一个面条产品类,还需要修改工厂类方法)
  2. 不同的产品需要不同额外参数的时候 不支持。

二、生产者消费者模式

进程之生产者消费者模型(队列,管道,数据共享,进程池)

生产者消费者问题是多线程并发中一个非常经典的问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模型,多生产者-单消费者模型,多生产者-多消费者模型。

2.1 单身产者-单消费者模型

⚠️ **GitHub.com Fallback** ⚠️