首页 > 其他分享 >抽象工厂模式

抽象工厂模式

时间:2024-04-01 15:14:52浏览次数:17  
标签:Console 模式 public 抽象 WriteLine override 工厂 class Yabo

定义

public abstract class Yabo {
    public abstract void print();
}
public class WuhanYabo : Yabo
{
    public WuhanYabo()
    {
        Console.WriteLine("我是武汉鸭脖");
    }
    public override void print()
    {
        Console.WriteLine("我是武汉鸭脖");
    }
}
public class ShenzhenYabo : Yabo
{
    public ShenzhenYabo()
    {
        Console.WriteLine("我是深圳鸭脖");
    }
    public override void print()
    {
        Console.WriteLine("我是深圳鸭脖");
    }
}

public abstract class Yajia
{
    public abstract void print();
}
public class WuhanYajia : Yajia
{
    public WuhanYajia()
    {
        Console.WriteLine("我是武汉鸭架");
    }
    public override void print()
    {
        Console.WriteLine("我是武汉鸭架");
    }
}
public class ShenzhenYajia : Yajia
{
    public ShenzhenYajia()
    {
        Console.WriteLine("我是深圳鸭架");
    }
    public override void print()
    {
        Console.WriteLine("我是深圳鸭架");
    }
}

public abstract class AbsFactory
{
    public abstract Yabo CreateYabo();
    public abstract Yajia CreateYajia();
}

public class WuhanFactory : AbsFactory
{
    public override Yajia CreateYajia()
    {
       return new WuhanYajia();
    }

    public override Yabo CreateYabo()
    {
        return new WuhanYabo();
    }
}

public class ShenzhenFactory : AbsFactory
{
    public override Yajia CreateYajia()
    {
        return new ShenzhenYajia();
    }

    public override Yabo CreateYabo()
    {
        return new ShenzhenYabo();
    }
}

调用

 AbsFactory wuhanFactory=new WuhanFactory();
 Yajia whyajia= wuhanFactory.CreateYajia();
 Yabo whyabo=wuhanFactory.CreateYabo();
 AbsFactory shenzhenFactory = new ShenzhenFactory();
 Yajia szyajia = shenzhenFactory.CreateYajia();
 Yabo szyabo = shenzhenFactory.CreateYabo();

 

标签:Console,模式,public,抽象,WriteLine,override,工厂,class,Yabo
From: https://www.cnblogs.com/daiwk/p/18108439

相关文章

  • 观察者模式
    定义publicinterfaceIAnimal{publicstring_Name{get;set;}voidAction();}publicclassCat:IAnimal{publicstring_Name{get;set;}publicCat(stringName){_Name=Name;}publicvoidAction(){......
  • 责任链模式
    定义publicinterfaceIHandler{publicIHandlernext{get;set;}voidResponse();}publicclassHandlerOne:IHandler{publicIHandlernext{get;set;}publicvoidResponse(){Console.WriteLine("正在处理程序1......
  • 策略模式
    定义publicinterfaceITraffic{voidDrive();}publicclassCar:ITraffic{publicvoidDrive(){Console.WriteLine("车在陆地行驶");}}publicclassShip:ITraffic{publicvoidDrive()......
  • 简单工厂模式
    定义publicinterfaceICar{publicvoidDrive();}publicclassXiaoMiCar:ICar{publicvoidDrive(){Console.WriteLine("正在驾驶小米汽车");}}publicclassTeslaCar:ICar{publicvoidDrive(){Console.Wr......
  • 设计模式之组合模式
    概念:将对象组合成树形结构以表示“部分——整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。组合模式有三个角色:抽象构件:定义公有属性和方法。叶子结点:树形结构的底层结点,没有子结点,实现抽象构件的所有操作。中间结点:叶子结点之前的结点,有子结点。组合模......
  • 打破传统消费模式,让每一次购物成为可持续的循环
    亲爱的朋友们,我是微三云的周丽,一名专注于私域电商模式创、新的探索者。私域运营的核心不应仅仅局限于不断的cu销,这样的ce略只会使xiao费者对品牌逐渐失去感觉。更高明的做法是利用场景ce略来深化与用户的联系,直击他们的ton点,使xiao费者自发产生购买yu望,从而提升转化率。循环......
  • C#中的设计模式
    设计模式在C#和WPF日常开发中扮演着重要角色,它们提供了一套通用的解决方案,用于解决软件设计中的常见问题。以下是关于设计模式的知识点,以及可能会在面试中被问到的一些问题和答案:设计模式的知识点:创建型模式:创建型模式用于处理对象的创建过程,包括单例模式、工厂模式、抽......
  • js 实现简单发布订阅模式
    1.事件调度器classEventEmitter{constructor(){this.events={};}on(event,listener){if(!this.events[event]){this.events[event]=[];}this.events[event].push(listener);}emit(event,...args){if(this.eve......
  • 【前端面试3+1】01闭包、跨域、路由模式
    一、对闭包的理解定义:闭包是指在一个函数内部定义的函数,并且该内部函数可以访问外部函数的变量。闭包使得函数内部的变量在函数执行完后仍然可以被访问和操作。特点:闭包可以访问外部函数的变量,即使外部函数已经执行完毕。闭包可以保持外部函数的作用域不被销毁,从而延长变......
  • 设计模式,装修模式,Php代码演示,优缺点,注意事项
    装饰模式(DecoratorPattern)是一种结构型设计模式,它允许动态地向一个现有对象添加新的功能或行为,而不改变其原始结构。在PHP中,可以使用类的继承和组合来实现装饰模式。下面是一个简单的PHP装饰模式示例代码:首先,定义一个基类`Component`,它代表要装饰的对象:```phpabstract......