株洲网站建设服务公司前端页面设计流程
web/
2025/10/4 20:16:12/
文章来源:
株洲网站建设服务公司,前端页面设计流程,河南省网站建设意见,沧州网站建设设计定制简单工厂模式
简单工厂模式的概念
简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负 责创建其他类的实例#xff0c;被创建的实例通常都具有共同的父类。
具体分类
工厂#xff08;Creator#xff09;角色 简单工厂模式的核心#xff0…简单工厂模式
简单工厂模式的概念
简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负 责创建其他类的实例被创建的实例通常都具有共同的父类。
具体分类
工厂Creator角色 简单工厂模式的核心 它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调 用创建所需的产品对象。抽象Product角色 简单工厂模式所创建的所有对象的父类它负责描述所有实例所共有的公共接口。具体产品ConcreteProduct角色 简单工厂模式所创建的具体实例对象 简单工厂模式不是23种设计模式因为它并不符合开闭原则
简单工厂模式的优缺点
在这个模式中工厂类是整个模式的关键所在。它包含必要的判断逻辑能够根据外界 给定的信息决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创 建所需的实例而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系结构 的优化。 不难发现简单工厂模式的缺点也正体现在其工厂类上由于工厂类集中了所有实 例的创建逻辑所以“高内聚”方面做的并不好。另外当系统中的具体产品类不断增多时可能会出现要求工厂类也要做相应的修改扩展性并不很好。
简单工厂模式的实现
#includeiostream
using namespace std;//抽象水果
class AbstractFruit{
public:virtual void ShowName() 0;};//苹果
class Apple :public AbstractFruit{virtual void ShowName(){cout 我是苹果 endl;}
};//香蕉
class Banana :public AbstractFruit{
public:virtual void ShowName(){cout 我是香蕉 endl;}
};//梨子
class Pear :public AbstractFruit{
public:virtual void ShowName(){cout 我是梨子 endl;}
};//建立一个工厂
class FruitFactory{
public:static AbstractFruit *CreateFruit(string flag){if (flag apple){return new Apple;}else if (flag pear){return new Pear;}else if (flag banana){return new Banana;}}
};void test01(){FruitFactory *factory new FruitFactory;AbstractFruit *fruit factory-CreateFruit(apple);fruit-ShowName();delete fruit;fruit factory-CreateFruit(banana);fruit-ShowName();delete fruit;fruit factory-CreateFruit(pear);fruit-ShowName();delete fruit;
}int main(void)
{test01();system(pause);return 0;
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86971.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!