DesignPattern-Abstract Factory

标准论文参考文献添加方法——Zotero入门使用教程 第一篇论文投出去了,写一下最后一步的参考文献修饰润色吧! 论文的参考文献,即References,是论文的最后一步,相信不管是写毕设论文还是期刊论文都遇到过需要修改参考文献的情况,非常之麻烦。而且参考文献中经常会与生僻奇怪气体出现,一个一个修改非常浪费时间,这里介绍一下一个非常好用的软件Zetero。 第一步:软件的下载安装及绑定Word 尽量使用客户端吧, 阅读详情
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Design_Patterns
{
    /// <summary>
    /// 抽象工厂模式
    /// </summary>
    abstract class AbstractFactory
    {
        public abstract AbstractProductA CreateProductA();
        public abstract AbstractProductB CreateProductB();
    }

    class ConcreateFactoryA : AbstractFactory
    {
        public override AbstractProductA CreateProductA()
        {
            return new ProductA1();
        }

        public override AbstractProductB CreateProductB()
        {
            return new ProductB1();
        }
    }

    class ConcreateFactoryB : AbstractFactory
    {
        public override AbstractProductA CreateProductA()
        {
            return new ProductA2();
        }

        public override AbstractProductB CreateProductB()
        {
            return new ProductB2();
        }
    }

    abstract class AbstractProductA
    {

    }

    abstract class AbstractProductB
    {
        public abstract void Interact(AbstractProductA a);
    }

    class ProductA1 : AbstractProductA
    {

    }

    class ProductB1 : AbstractProductB
    {
        public override void Interact(AbstractProductA a)
        {
            Console.WriteLine(this.GetType().Name+" interacts with "+a.GetType().Name);
        }
    }

    class ProductA2 : AbstractProductA
    {

    }

    class ProductB2 : AbstractProductB
    {
        public override void Interact(AbstractProductA a)
        {
            Console.WriteLine(this.GetType().Name + " interacts with " + a.GetType().Name);
        }
    }

    class Client
    {
        AbstractProductA AbstractProductA;
        AbstractProductB AbstractProductB;

        public Client(AbstractFactory AbstractFactory)
        {
            AbstractProductA = AbstractFactory.CreateProductA();
            AbstractProductB = AbstractFactory.CreateProductB();
        }

        public void Run()
        {
            AbstractProductB.Interact(AbstractProductA);
        }
    }

    //一系列相互依赖的对象
    public interface Floor
    {
    }
    public interface Wall
    {
    }
    public interface Roof
    {
    }

    public class ChinaFloor : Floor
    {
    }
    public class ChinaWall : Wall
    {
    }
    public class ChinaRoof : Roof
    {
    }

    public class USAFloor : Floor
    {
    }
    public class USAWall : Wall
    {
    }
    public class USARoof : Roof
    {
    }

    public class FranceFloor : Floor
    {
    }
    public class FranceWall : Wall
    {
    }
    public class FranceRoof : Roof
    {
    }

    //抽象工厂
    public abstract class HouseFactory
    {
        public abstract Floor CreateFloor();
        public abstract Wall CreateWall();
        public abstract Roof CreateRoof();
    }
    public class ChinaHouseFactory : HouseFactory
    {
        public override Floor CreateFloor()
        {
            return new ChinaFloor();
        }

        public override Wall CreateWall()
        {
            return new ChinaWall();
        }

        public override Roof CreateRoof()
        {
            return new ChinaRoof();
        }
    }
    public class USAHouseFactory : HouseFactory
    {
        public override Floor CreateFloor()
        {
            return new USAFloor();
        }

        public override Wall CreateWall()
        {
            return new USAWall();
        }

        public override Roof CreateRoof()
        {
            return new USARoof();
        }
    }
    public class FranceHouseFactory : HouseFactory
    {
        public override Floor CreateFloor()
        {
            return new FranceFloor();
        }

        public override Wall CreateWall()
        {
            return new FranceWall();
        }

        public override Roof CreateRoof()
        {
            return new FranceRoof();
        }
    }


}


100天精通Python(爬虫篇)——第122天:基于selenium接管已启动的浏览器(反反爬策略) 阅读详情

相关推荐

计算机视觉之姿态识别(原理+代码实操)

计算机视觉中的姿态识别原理+模型介绍,同时通过代码实操简单的演示基于mediapipe的单人姿态识别。

输出既学习 3万+

Abstract Factory Design Pattern 抽象工厂设计模式 - 总结

Abstract Factory Design Pattern 就是一般的Factory Design Pattern的进一步设计,增加一个抽象工厂,然后利用这个工厂可以创建不同基类的类。 当我们需要创建更多不同类的时候就可以使用这个设计模式了。 这个设计模式的代码相对会多点,但是其中的思想就是一般Factory Design Pattern,然后集合更多的基类,看起来挺大的一个设计模式,其思

靖空间 1617

实践指南——【SPSS操作解析】线性混合效应模型在重复测量数据中的应用

本文详细解析了线性混合效应模型在重复测量数据分析中的应用,并提供了SPSS操作指南。文章阐述了该模型如何通过区分固定效应与随机效应,有效处理数据非独立性和缺失值问题,从而获得更可靠的统计推断。

oo7890的博客 551

设计模式讨论之abstract factory篇

设计模式讨论之abstract factory篇有人说过,“不写1M行代码,不能看设计模式。”但似乎设计模式并非那么神奇,下面用笔者的一点粗浅认识,讨论一下abstract factory设计模式的主要部分。首先,为什么要用设计模式?GOF的设计模式主要是用来减小耦合和提高复用的。而面向对象的主要原则就是能private的,就不要protected;能protected,就不要public

xxcc的专栏 2438

MySQL安装配置教程(超级详细)

一、 下载MySQL Mysql官网下载地址:MySQL :: Download MySQL Installer (Archived Versions) 1. 选择要安装的版本,本篇文章选择的是5.7.31版本,点击Download下载 正在上传…重新上传取消 二、 安装MySQL 1. 选择设置类型双击运行mysql-installer-community-5.7.31.0.msi 这里选择是自定义安装,所以直接选择“Custom”,点击“Next” “Developer Default”是

m0_67322837的博客 5万+

Zabbix安装与部署 系统环境:centos7.0

Zabbix安装与部署 系统环境:centos7.0

weixin_42485027的博客 2600

设计模式C++ 笔记一 创建型模式(Factory、abstract factory、singleton)

面向对象的三大特性:封装、继承、多态 追求:高内聚,低耦合 1、Factory模式: 引入原因:为了提高内聚,降低耦合,会抽象出一些类的公共接口形成抽象基类或接口,在每次用到子类时都要使用new ***,这就要求知道子类的名称,同时也影响了程序的扩展性和维护变得困难。另一种情况时在父类中并不知道要实例化哪一个具体的子类,例如a中用到类B,但B是一个抽象类 Factory功能:1)定

moonboat0331的专栏 901

网络摄像头(IPC)介绍:类型、供电、镜头、夜视等

IPC(Internet Protocol Camera,网络摄像头),它是一种由传统摄像机与网络技术结合所产生的新一代摄像机。它可以将视频、音频、报警及控制信号通过网络传输,接受网络监控主机(NVR或监控管理平台)的管理。IPC可与路由器、交换机、NVR等设备组建成为监控系统。

学无止境,Fighting! 1万+

DesignPattern_Java:Abstract Factory Pattern

抽象工厂模式 Abstract Factory Pattern Provide an interface for creating families of related or dependent objects without specifying their concrete classes. 为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类。 抽象工厂角色(Abst

Anonymous 965

科研效率革命:Zotero与Web of Science联动实现千篇文献一键获取

本文详细介绍了如何利用Zotero与Web of Science联动实现科研文献的高效管理,包括批量导入、智能下载和自动整理千篇文献的技巧。通过精准检索、RIS文件导出和Zotero插件设置,科研人员可以大幅提升文献获取和管理的效率,特别适合开题报告和综述写作等场景。

weixin_29219539的博客 254

使用 Simulink + Simscape Electrical 实现一个三相电压型PWM整流器的仿真模型

三相电压型PWM整流器(Voltage Source PWM Rectifier, VSR)是一种先进的电力电子装置,它不仅可以将交流电转换为直流电,还能实现单位功率因数操作,即输入电流与输入电压同相位。这不仅提高了电网质量,减少了谐波污染,而且提高了整个系统的效率。本文将详细介绍如何使用实现一个三相电压型PWM整流器的仿真模型,并探讨其在单位功率因数下的控制策略和仿真结果。本文详细介绍了如何使用搭建一个三相电压型PWM整流器的仿真模型,并对其在单位功率因数下的控制策略进行了探讨。

amy_mhd的博客 128

设计模式一:abstract factory

笔记:Abstract Factory 1.目的       创建相关或者相互依赖的一组对象(这些对象具有某些共同的属性),创建之前并不知道这些对象的具体类型。 2.结构图:       如上图,我们可以看到system 直接使用的是AbstractFactory, AbstractProductA, AbstractProductB。系统并不知道ConcreteFactory,具体的产品。 用户

zhaodewei2004的专栏 659

3分钟学会SQL中的断点去重技术,轻松搞定连续重复数据去重问题?

传感器采集的温度数据中,存在连续重复的值,需仅在数值变化时保留记录(例如:温度从 25°C 变为 26°C 时记录一次)。:判断逻辑,current_value!若当前温度与前一行的温度不同(或为第一条记录),则保留该行。的技术,常用于时间序列或状态日志中。:将连续相同值的记录合并,只保留断点处的记录。保留断点处的记录(即温度变化时的第一条)。原始数据表 sensor_data。最终仅保留值变化的断点记录。获取前一行的温度值。

石榴姐yyds 1019

设计模式-Abstract Factory模式

        还是一个创造型模式,可以简单的认为,创造型模式就是对用户使用new的一个封装,封装作为面向对象一个重要的特性,它绝对不是一对大括号那么简单,他重要的是封装变化点.如果没有变化,那就别封装吧,直接让用户new吧,这样效率是最高的,但因为会有变化,所以才会有面向对象和设计模式.抽象工厂是应对这样的一系列变化的,比如我们最初需要一个road类,用以表现我们游戏项目的道路,那么,我们可以简

Lance的专栏 746

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

[设计模式]Abstract Factory和Builder

9/9/2005    看到董董的帖子,想起来一直说要写读书笔记来着。     第一次读设计模式是在03年末,那次真的是囫囵吞枣,几乎没有收获,只是认识了原来C++可以这样设计程序。书被同学弄丢后一直没有温习,直到前些日子买回来了重读,才开始领略Design的魅力。     先写写我对Abstract Factory和Builder的理解吧。     黑体字表示模式名,斜题字表示是抽象

BLOG@JayXie.COM 1584

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

设计模式1——Abstract Factory模式(C++实现)

Factory

BE A CREATOR 1061

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

设计模式一(Factory Method,Abstract Factory)

Factory Method模式:Factory Method模式使一个类的实例化延迟到子类,具体来讲,就是Factory Method模式将创建对象实例的责任转移到工厂类,也就是说在工厂类里面,定义对象的实例化。 Abstract Factory模式:Abstract Factory模式是一系列对象的创建,所以在抽象工厂类里面要创建一系列的对象的实例化,而不是单个对象的实例化。 切记这一系

ainibaifenbai的专栏 774

Design Pattern: Abstract Factory 模式

假设您要制作一个对话方块(Dialog)元件,您希望的是这个对话方块可以有不同的视感(Look-and- feel),最基本的想法是,藉由Setter将不同视感的元件设定给这个对话方块,例如: CustomDialog.java public class CustomDialog { private IButton button; private ITextField...

Chinaxxren 110

设计模式(Java)—Abstract Factory模式

抽象工厂的工作是将“抽象零件”组装为“抽象产品”。 在Abstract Factory模式中将会出现抽象工厂,它将会抽象零件组装为抽象产品。也就是说人们并不关心零件的具体实现,而只关心接口,我们仅使用该接口将零件组装成为产品。 在Tempate Method模式和Builder模式中,子层这一层负责方法的具体实现,在Abstract Factory模式也是一样的。在子类这一层中有具体的工厂,它...

zoinsung_lee的博客 621

设计模式2--Abstract Factory Design Pattern In C++

最关键的特性是它允许派生类访问基类中的受保护成员。这意味着如果一个基类中的成员被声明为。AFDP 定义了一个抽象类来创建相关的家族对象但未指定其具体子类。1.你需要系统独立于对象的创建、组合和表示方式。,则任何直接或间接的派生类都可以访问这些成员。3.系统需要配置多个对象系列之一。2.显示接口而不是实现。成员即使在派生类中也是不可访问的。1.AFDP(抽象工厂设计模式)3.为什么/何时使用AFDP。

dc爱傲雪和技术 522

Abstract Factory Design Pattern

Abstract Factory patterns work around a super-factory which creates other factories. This factory is also called as factory of factories. This type of design pattern comes under creational patt...

weixin_30607659的博客 186

design pattern——abstract factory

design pattern——abstract factory

mardax的专栏 456

C++设计模式笔记(09) - Abstract Factory 抽象工厂

C++设计模式笔记(08) - Factory Method工厂方法: https://blog.youkuaiyun.com/mofan6930/article/details/104605165 参考书籍: 《设计模式:可复用面向对象软件的基础》 《Head First 设计模式》 参考课程:《C++设计模式》-李建忠 1.动机(Motivation) ▷在软件系统中,经常面临着“...

Fista的笔记本 324

《设计模式》之Creational模式:Abstract Factory

对象创建:Abstract Factory 目的 提供一个可以创建一族关联的或者依赖的对象,而不需要指定它们具体的类。 有时也可称为 Kit 驱动 假设有一个用户接口工具箱,它可以支持多种不同的观感标准,例如Motif和Presentation Manager。不同的观感标准定义了不同的外观和用户界面行为,例如滚动条、窗口和按钮。要想在不同的观感标准之间方便的迁移,一个应用不应该写

天天吃吃 706

DesignPattern-Abstract Factory 修改

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Design_Patterns {          //一系列相互依

andycode的专栏 363

抽象工厂设计模式(Abstract Factory Design Pattern)

sourcemaking.com 抽象工厂: 提供一个接口来创建相关的或有依赖的对象们的家庭,而不用指明他们的具体类。一种层级结构封装了:许多可能的“平台”(比如窗口系统、操作系统、数据库等),还有构建了一套“产品”。new 操作在这里认为是有害的。

xiaobaiooo的专栏 755
上一篇: DesignPattern-Factory Method
下一篇: DesignPattern-Abstract Factory 修改
andycode
博客等级 码龄17年 12粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值