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;
}
- 它是一个具体的类,非接口抽象类。有一个重要的create()方法,利用if或者 switch创建产品并返回。
- create()方法通常是静态的,所以也称之为静态工厂。
- 扩展性差(我想增加一种面条,除了新增一个面条产品类,还需要修改工厂类方法)
- 不同的产品需要不同额外参数的时候 不支持。
进程之生产者消费者模型(队列,管道,数据共享,进程池)
生产者消费者问题是多线程并发中一个非常经典的问题,它们分别是:单生产者-单消费者模型,单生产者-多消费者模型,多生产者-单消费者模型,多生产者-多消费者模型。