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

健康保险网站简单库存管理免费软件

健康保险网站,简单库存管理免费软件,西安网页制作,网站建设的含义UML图与工厂模式 UML图设计模式三原则简单工厂模式工厂模式 UML图 类封装了数据和行为#xff0c;是面向对象的重要组成部分#xff0c;它是具有相同属性、操作、关系的对象集合的总称 有以下UML图#xff0c;分析如下#xff1a; 可见性#xff1a; 表示public、# 表示… UML图与工厂模式 UML图设计模式三原则简单工厂模式工厂模式 UML图 类封装了数据和行为是面向对象的重要组成部分它是具有相同属性、操作、关系的对象集合的总称 有以下UML图分析如下 可见性 表示public、# 表示protected、- 表示private、__(下划线)表示static属性的表示方式【可见性】【属性名称】:【类型】 { 缺省值可选 }方法的表示方式【可见性】【方法名称】(【参数名 : 参数类型……】:【返回值类型】 定义的类是一个抽象类类中有纯虚函数在画UML类图的时候类名需要使用斜体显示并在最后给函数指定0。 设计模式三原则 单一职责原则 核心思想 ​​一个类应该只有一个引起它变化的原因​​即一个类只负责一项职责通俗理解 即一个类只负责一项职责一个类不要 “身兼数职”关键点 将不同职责分离到不同的类中职责分离 开闭原则 核心思想 软件实体类、模块、函数应对扩展开放对修改关闭​​通俗理解​​ 新增功能时尽量通过扩展如继承、组合实现而非修改已有代码 里氏替换原则 核心思想 子类必须能够替换父类且不影响程序的正确性​​​​通俗理解​​ 子类要能包含父类的所有属性和方法 三者关系与总结​​ 原则核心目标实现手段​​单一职责SRP​高内聚、低耦合拆分职责到不同类​​开闭原则OCP可扩展性减少修改风险依赖抽象使用多态/组合​​里氏替换LSP​​ 保证继承体系的正确性合理设计父子类契约 简单工厂模式 提供一个静态方法或普通方法根据输入参数如类型标识决定创建并返回哪种具体类的实例。 工厂类SimpleFactory​​负责创建具体产品包含判断逻辑。​​抽象产品Product​​定义产品的公共接口通常是抽象类或接口具体产品ConcreteProduct​​实现抽象产品的具体类。 简单工厂模式相关类的创建和使用步骤如下 定义一个抽象产品基类Product作为各个对象的基类创建一个工厂类并且为工厂类添加公共成员函数通过这个函数来创建我们需要的对象这个函数称为工厂函数。简单工厂需要的工厂类只只有一个。关于工厂函数返回的是基类指针以此实现多态函数体则根据不同的枚举类型创建不同的对象实例关于使用首先创建一个工厂类对象然后通过这个对象调用工厂函数这样就可以生产出一个指定类型的实例对象了。 相关UML类图与实例代码如下 #include bits/stdc.husing namespace std;// 从而实现对象的解耦合, 同时增强了程序的扩展性 // 抽象产品接口 class Product { public:virtual ~Product() default;virtual void operation() const 0; };// 具体产品类A class ConcreteProductA : public Product { public:void operation() const override {cout ConcreteProductA operation endl;} };// 具体产品类B class ConcreteProductB : public Product { public:void operation() const override {cout ConcreteProductB operation endl;} };// 工厂类 class SimpleFactory { public:static Product* createProduct(char type) {switch(type){case A: return new ConcreteProductA(); break;case B: return new ConcreteProductB(); break;default: break;}} };// 客户端代码 int main() {char type;cout Enter product type (A or B): ;cin type;Product* product SimpleFactory::createProduct(type);product-operation();delete product; // 手动释放内存return 0; }说明 基类的析构函数应该是虚函数这样才能够通过父类指针或引用析构子类的对象。工厂函数返回值为基类指针指向子类对象的地址实现多态简单工厂模式的工厂函数是违背了开闭原则的 工厂模式 在上面的简单工厂模式的工厂函数中需要创建不同的实例对象现在如果想要生成更多实例对象那么就需要在工厂函数的switch语句中添加更多的case很明显这违背了封闭原则也就意味着需要基于开放原则来解决这个问题。 简单工厂模式是只有一个工厂类而工厂模式是有很多的工厂类 一个基类包含一个虚工厂函数用于实现多态。多个子类重写父类的工厂函数。每个子工厂类负责生产一种产品的实例对象这相当于再次解耦将工厂类的职责再次拆分、细化如果要生产新品种的恶魔果实那么只需要添加对应的工厂类无需修改原有的代码。 相关UML类图与实例代码如下 #include iostream using namespace std;// 抽象产品接口 class Product { public:virtual ~Product() default;virtual void operation() const 0; };// 具体产品类A class ConcreteProductA : public Product { public:void operation() const override {cout ConcreteProductA operation endl;} };// 具体产品类B class ConcreteProductB : public Product { public:void operation() const override {cout ConcreteProductB operation endl;} };// 工厂接口 class Factory { public:virtual ~Factory() default;virtual Product* createProduct() const 0; };// 具体工厂类A class ConcreteFactoryA : public Factory { public:Product* createProduct() const override {return new ConcreteProductA();} };// 具体工厂类B class ConcreteFactoryB : public Factory { public:Product* createProduct() const override {return new ConcreteProductB();} };// 客户端代码 int main() {char type;cout Enter product type (A or B): ;cin type;Factory* factory nullptr;if (type A) {factory new ConcreteFactoryA();} else if (type B) {factory new ConcreteFactoryB();} else {cerr Unknown product type endl;return 1;}Product* product factory-createProduct();product-operation();delete product; // 手动释放产品对象delete factory; // 手动释放工厂对象return 0; }在真实的项目场景中要生成什么类型的具体产品ConcreteProductA/B其实是通过客户端的操作界面控制的它对应的可能是一个按钮或者是一个选择列表用户做出了选择程序就可以根据该需求去创建对应的工厂对象最终将选择的具体产品生产出来。
http://www.hkea.cn/news/14385184/

相关文章:

  • 企业网站建设情况汇报旅游网站建设与设计
  • 网站建设开票内容是什么意思wordpress输入qq评论
  • 镇江网站制作咨询广州建网站加备案
  • 在哪里能找到做网站的人jsp 淘宝网站验证码 设计
  • 网站被k的怎么办浏览器app下载安装
  • 一键优化门户网站怎么做优化
  • oppo软件商店更新吐鲁番seo快速排名
  • 成都网站建设 雷商城手机网站制作
  • 招商加盟网站建设交易平台网站怎么做
  • 做软件好还是做网站好个人网页设计作品模板
  • iis发布php网站企业网站建设综合实训心得体会一千字
  • 长春做个人网站做不了广西建设教育学会网站
  • 保健品 网站模板建一个网站首先要怎么做
  • 丹阳市制作网站wordpress拼音
  • 西安网站开发公司电话做网站都是用ps吗
  • 为学校网站建设中企业网站建设
  • 工程造价信息价在什么网站查地方生活门户网站有哪些
  • 汉口江岸区城市建设局网站奢侈品网站排名
  • 网站301跳跳转网站有哪些
  • 英语网站开发的背景网站开发原理
  • 做局域网网站网站项目签约
  • 小微企业所得税优惠政策网站seo排名培训
  • 门户网站建设jz190h5网站开发的文献综述
  • 所有代刷平台推广上海网站建设乐云seo模板中心
  • 做英文网站要用什么字体南宁网站推广大全
  • 潍坊建设银行招聘网站南宁网站运营优化平台
  • 南宁做网站设计方案网站开发摊销多少年
  • 爱站数据官网企业网站系统详细设计
  • 购物网站怎么做优化代理注册公司行情
  • 网站流量查询站长之家培训网址