首页 > 其他分享 >关于工厂方法和抽象工厂

关于工厂方法和抽象工厂

时间:2024-05-30 16:00:07浏览次数:14  
标签:对象 创建 工厂 抽象 关于 具体 方法

简单工厂

简单工厂中没有抽象工厂类,在仅有的简单工厂中,创建工作根据传入的需求,采用相应的分支,创建相应的对象。说白了就是if else,然后 newProductX/Y/Z…

工厂方法

工厂方法中,抽象工厂定义了一个抽象方法,具体工厂实现了该抽象方法,并在实现中创建一种对象。具体创建哪种对象取决于具体工厂本身。

比如,想要iphone就建一个phone工厂。想要huawei就建一个huawei工厂。

抽象工厂

抽象工厂是工厂方法的延伸,抽象工厂类中定义了多个对象创建的抽象方法,一个具体工厂中可以创建多种不同的对象的组合。具体如何创建这一组对象,取决于具体工厂本身。

这个例子不错:

比如用抽象工厂模式 创建 UI的各个组成部分:字体 工具栏 边角 颜色。。
concreteFactoryA 实现了 加粗字体 全集工具栏 圆形边角 红色风格
客户端程序调用concreteFactoryA就能得到这个组合样式。

标签:对象,创建,工厂,抽象,关于,具体,方法
From: https://www.cnblogs.com/zongzw/p/18222564

相关文章

  • 关于github的全方位使用和与个人小组项目结合
    一,引言今天给大家介绍的是一款源代码管理工具网站Github,Github是一个基于版本控制软件Git打造的网站对于个人而言,Github提供了丰富的代码托管和版本控制功能,方便开发者管理自己的项目和代码,个人也可以在网站上搜索自己所需要的开源项目或者代码片段,同时也可以在网站上向朋友或......
  • 关于洛谷获得数据怪谈
    免责声明:本文仅用于测试键盘性能,输入内容概不负责。在洛谷有时输入数据仅有几个数字,但是出于某些原因无法获得输入数据,但是手贱非常想要获得,于是尝试一种特殊方法。示例题目:P1014[NOIP1999普及组]Cantor表尝试提交以下代码:#include<iostream>usingnamespacestd;intn......
  • 关于前端上传excell时间的问题
    当前端导入excell里的数据时,只能获取到下面类似的这种数据Excel存储的日期是从1900年1月1日开始按天数来计算的,也就是说1900年1月1日在Excel中是1。转化的思路和对Excel中的错误的处理因为时间戳是从1970年1月1日算起的(时间戳为0的时候是1970年1月1日)也就是说newDate(0).toLo......
  • 关于二分
    第一种二分查找1)lower_bound函数,查找相同区间的第一个数的下标intlower_bound(vector<int>&nums,inttarget){ intl=0,r=nums.size()-1,mid; while(l<=r)//区间不为空 { mid=l+(r-l)/2;//防止溢出 if(nums[mid]<target)l=mid+1;//[mid+1,right],把小于目标的......
  • 为何Java抽象类是代码架构的基石?
    效率工具推荐一个程序员的常用工具网站,效率加倍嘎嘎好用:程序员常用工具云服务器云服务器限时免费领:轻量服务器2核4G腾讯云:2核2G4M云服务器新老同享99元/年,续费同价阿里云:2核2G3M的ECS服务器只需99元/年,续费同价为何Java抽象类是代码架构的基石?Java抽象类是面向对象编......
  • 关于mysql explain中key_len
    key_len只指示了where中用于条件过滤时被选中的索引列,是不包含orderby、groupby这一部分被选中的索引列的。索引字段:没有设置NOTNULL,则需要加1个字节。定长字段:tinyint 占 1 个字节、int 占 4个字节、bitint 占 8 个字节、date 占 3个字节、datetime 占 5 ......
  • 关于mysql连表操作
    1createdatabasetest2;2usetest2;3CREATETABLEstudents(4student_idINT,5student_nameVARCHAR(50)6);78CREATETABLEcourses(9course_idINT,10student_idINT,11course_nameVARCHAR(50)12);1314INSERT......
  • 一本关于深入理解linux内核的书
    以下目录中所述关于深入理解linux内核:http://iteralink.top/resource/detail/7180573456050688000第一章走进Linux11.1GNU与Linux的成长 11.2Linux的开发模式和运作机制 21.3走进Linux内核 41.3.1Linux内核的特征 41.3.2Linux内核版本的变化 51.4......
  • 关于 IDEA 2023.3.1总管理配置maven路径
    先调出主页面,再选择主页面中的maven路径配置1、调出主页面. 在设置中搜索System,选中SystemSettings模块,取消Confirm和Reopen模块的勾选     2、重新启动进入主页面点击Customise中的Allsettings,进入总设置,在此进行maven配置即可......
  • 【Mac】关于Mac的github配置和本地项目上传
    目录前言什么是github?有什么用?github个人账户创建Mac的git环境配置生成密钥将密钥添加到github创建github仓库将本地文件上传至github仓库一些常用的git命令总结前言  本文主要介绍了Mac的git环境配置,github仓库的创建,本地文件上传到github仓库以及常用的git命......