简单工厂模式
- 属于类的创建型模型,又叫静态工厂方法模式。
- 定义一个类来负责创建其他类的实例,被创建的实例通常具有共同的父类。
#include<iostream> #include<string> using namespace std; //简单工厂模式: class Phone {
public: virtual void show_name() {
cout << "我是手机!\n\n"; } }; class iQOO_phone: public Phone {
public: virtual void show_name() {
cout << "我是iQOO手机!\n\n"; } }; class Vivo_phone: public Phone {
virtual void show_name() {
cout << "我是vivo手机!\n\n"; } }; class Factory {
public: Phone* creat(string name) {
if (name == "iQOO") {
cout << "开始生产iQOO手机!\n\n"; return new iQOO_phone; } if (name == "vivo") {
cout << "开始生产vivo手机!\n\n"; return new Vivo_phone; } else {
cout << "手机类型错误!已退出!\n\n"; return nullptr; } } }; int main() {
Factory *f = new Factory; Phone *p = f->creat("iQOO"); p->show_name(); return 0; }
讯享网
工厂模式
- 每个工厂生产一类产品
讯享网#include<iostream> #include<string> using namespace std; //工厂模式: class Phone {
public: virtual void show_name() {
cout << "我是手机!\n\n"; } }; class iQOO_phone: public Phone {
public: virtual void show_name() {
cout << "我是iQOO手机!\n\n"; } }; class Vivo_phone: public Phone {
virtual void show_name() {
cout << "我是vivo手机!\n\n"; } }; class Factory_iQOO {
public: Phone* creat() {
cout << "开始生产iQOO手机!\n\n"; return new iQOO_phone; } }; class Factory_vivo {
public: Phone* creat() {
cout << "开始生产vivo手机!\n\n"; return new Vivo_phone; } }; int main() {
Factory_iQOO *iQOO = new Factory_iQOO; Phone *p = iQOO->creat(); p->show_name(); Factory_vivo *vivo = new Factory_vivo; p = vivo->creat(); p->show_name(); return 0; }
抽象工厂
- 可以向客户端提供一个接口,使得客户端在不指定产品具体类型的情况下,能够创建多个产品族的产品对象。
- 工厂方法模式针对的是一个产品等级结构,而抽象工厂模式针对的是多个产品等级结构。








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/60152.html