当前位置: 首页 > news >正文

网站中英文切换怎麼做wordpress插件自定义字段

网站中英文切换怎麼做,wordpress插件自定义字段,中国工业品网,南通网站设计制作公司工厂模式属于创建型模式#xff0c;大致可以分为三类#xff0c;简单工厂模式、工厂方法模式、抽象工厂模式。二. 工厂方法模式所谓工厂方法模式#xff0c;是指定义一个用于创建对象的接口#xff0c;让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子…工厂模式属于创建型模式大致可以分为三类简单工厂模式、工厂方法模式、抽象工厂模式。二. 工厂方法模式所谓工厂方法模式是指定义一个用于创建对象的接口让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。还以刚才的例子解释这家电子厂赚了不少钱于是决定再开设一个厂其中一个工厂专门用来生产A型号的产品也就是只生产电吹风而另一工厂专门用来生产B型号的产品也就是只生产电风扇这样分工明确了。以后客户要再下定单时可以直接找到相关的工厂了比如要A型号的产品就找A工厂要不再担心下的定单是A生产出来的是B产品了。代码实现abstractClass.h#ifndef ABSTRACTCLASS_H#define ABSTRACTCLASS_H#include #include typedef struct {size_t size;void* (*ctor)(void *_self, va_list *params);void* (*dtor)(void *_self);} AbstractClass;#endiffactory.h#ifndef FACTORY_H#define FACTORY_H#include #include typedef struct {size_t size;void* (*ctor)(void *_self, va_list *params);void* (*dtor)(void *_self);void* (*createProduct)(const void *_self);} Factory;#endiffactoryA.h#ifndef FACTORYA_H#define FACTORYA_Htypedef struct {const void *_;} _FactoryA;extern const void *FactoryA;#endiffactoryA.c#include factory.h#include factoryA.h#include productA.h#include new.h#include static void *factoryACtor(void *_self, va_list *params){_FactoryA *self _self;return self;}static void *factoryADtor(void *_self) {_FactoryA *self _self;return self;}static void* factoryACreateProduct(const void *self) {return New(ProductA);}static const Factory _factory {sizeof(_FactoryA),factoryACtor,factoryADtor,factoryACreateProduct};const void *FactoryA _factory;factoryB.h#ifndef FACTORYB_H#define FACTORYB_Htypedef struct {const void *_;} _FactoryB;extern const void *FactoryB;#endiffactoryB.c#include factory.h#include factoryB.h#include productB.h#include new.h#include static void *factoryBCtor(void *_self, va_list *params){_FactoryB *self _self;return self;}static void *factoryBDtor(void *_self) {_FactoryB *self _self;return self;}static void* factoryBCreateProduct(const void *self) {return New(ProductB);}static const Factory _factory {sizeof(_FactoryB),factoryBCtor,factoryBDtor,factoryBCreateProduct};const void *FactoryB _factory;product.h#ifndef PRODUCT_H#define PRODUCT_H#include #include typedef struct {size_t size;void* (*ctor)(void *_self, va_list *params);void* (*dtor)(void *_self);void (*show)(const void *_self);} Product;#endifproductA.h#ifndef PRODUCTA_H#define PRODUCTA_Htypedef struct {const void *_;} _ProductA;extern const void *ProductA;#endifproductA.c#include product.h#include productA.h#include #include static void *productACtor(void *_self, va_list *params) {_ProductA *self _self;return self;}static void *productADtor(void *_self) {_ProductA *self _self;return self;}static void productAShow(const void *_self) {(void)_self;fprintf(stdout, Product A\n);}static const Product _product {sizeof(_ProductA),productACtor,productADtor,productAShow};const void *ProductA _product;productB.h#ifndef PRODUCTB_H#define PRODUCTB_Htypedef struct {const void *_;} _ProductB;extern const void *ProductB;#endifproductB.c#include product.h#include productB.h#include #include #include static void *productBCtor(void *_self, va_list *params) {_ProductB *self _self;return self;}static void *productBDtor(void *_self) {_ProductB *self _self;return self;}static void productBShow(const void *_self) {(void)_self;fprintf(stdout, Product B\n);}static const Product _product {sizeof(_ProductB),productBCtor,productBDtor,productBShow};const void *ProductB _product;new.h#ifndef NEW_H#define NEW_Hvoid *New(const void *_class, ...);void Delete(void *_class);void *CreateProduct(const void *_factory);void Show(const void *product);#endifnew.c#include new.h#include abstractClass.h#include factory.h#include product.h#include #include #include #include void *New(const void *_class, ...) {const AbstractClass *class _class;void *p calloc(1, class-size);assert(p);*(const AbstractClass **)p class;if (class-ctor) {va_list params;va_start(params, _class);p class-ctor(p, ¶ms);va_end(params);}return p;}void Delete(void *_class) {const AbstractClass **class _class;if (_class *class (*class)-dtor) {_class (*class)-dtor(_class);}free(_class);}void *CreateProduct(const void *_factory) {const Factory * const *factory _factory;if (_factory *factory (*factory)-createProduct) {return (*factory)-createProduct(_factory);} else {return NULL;}}void Show(const void *_product) {const Product * const *product _product;if (_product *product (*product)-show) {(*product)-show(_product);}}main.c#include new.h#include factoryA.h#include factoryB.hint main(int argc, char *argv[]) {void *facA New(FactoryA);void *facB New(FactoryB);void *pro1 CreateProduct(facA);void *pro2 CreateProduct(facB);void *pro3 CreateProduct(facA);Show(pro1);Show(pro2);Show(pro3);Delete(facA);Delete(facB);Delete(pro1);Delete(pro2);Delete(pro3);return 0;}图片来源http://blog.csdn.net/hmsiwtv/article/details/9627109
http://www.zqtcl.cn/news/410105/

相关文章:

  • 网站搭建有免费的吗网站地图生成代码
  • 建设公司网站要注意什么投资小利润高的小生意
  • 网站建设需要做哪些工作做胃镜需那好天津津门网站A
  • 做网站申请域名的流程辽宁省工程造价网
  • 网站系统维护一般多长时间金华高端网站设计
  • 做网站公司销售开场白企业网站规划与开发
  • 兰州新区建站不锈钢网站建设
  • 淘宝小网站怎么做的电商网站有哪些
  • 哪些网站可以做画赚钱wordpress go跳转页
  • 怎么做新网站上线通稿深圳罗湖区网站建设公司
  • php 企业网站做网站可以赚钱吗
  • 局域网视频网站建设点播系统长沙3合1网站建设价格
  • 静态网站 服务器合肥做个网站什么价格
  • 宁阳网站设计家电网站设计方案
  • 网站备案icp秦皇岛黄金海岸
  • dedecms 金融类网站模板wordpress dux5.3
  • 学校网站源码wordpress向网站上传文件怎么做
  • 电子商务网站建设说课稿济南网站建设方案报价
  • 谈谈设计和建设网站体会wordpress header在哪
  • 360免费建站怎么进不去域名托管
  • 做网站视频存储网站建设有云端吗
  • 建网站如何上传南通 网站优化
  • 青海学会网站建设公司果汁网站模板
  • 10_10_网站建站怎么做网站链接支付
  • 九台网站甘肃网站优化
  • phpcms 网站源码建设银行科技中心网站首页
  • 营销型网站建设php源码无锡设计网站公司
  • 在线制作简历的网站绍兴seo全网营销
  • 个人做网站接装修活哪个网站好长沙企业网站建设分公司
  • 青岛网站制作辰星辰中国万网icp网站备案专题