zoukankan      html  css  js  c++  java
  • 抽象工厂

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace 抽象工厂
    {
    class Program
    {
    static void Main(string[] args)
    {
    //IQueryable<Person>
    /////List<Person> ls = new List<Person>();
    //IList<Person>

    }
    }

    public class Person
    {
    public int Id { get; set; }
    public string Name { get; set; }
    }

    /*其实工厂和抽象工厂没有多大区别,只不过是抽象工厂生产的商品是多个而已
    通俗的说,就是抽象工厂模式的具体工厂里面会有多个实例具体对象的方法
    更直观的就是,抽象工厂模式每个工厂一次造多个玩意,而工厂模式的每个工厂只造一个玩意*/
    public abstract class Product
    {
    public abstract void work();
    }
    public class ProductA : Product
    {
    public override void work()
    {
    Console.Write("ProductA");
    }
    }
    public class ProductB : Product
    {
    public override void work()
    {
    Console.Write("ProductB");
    }
    }
    public abstract class Car
    {
    public abstract void Build();
    }
    public class CarA : Car
    {
    public override void Build()
    {
    Console.Write("Build CarA");
    }
    }
    public class CarB : Car
    {
    public override void Build()
    {
    Console.Write("Build CarB");
    }
    }
    public abstract class AbstractFactory
    {
    //工厂生产多个对象
    public abstract Product newproduct();
    public abstract Car newCar();
    }
    public class AbstractFactoryA : AbstractFactory
    {
    public override Product newproduct()
    {
    return new ProductA();//子类里面实现具体的实例化
    }
    public override Car newCar()
    {
    return new CarA();
    }
    }
    public class AbstractFactoryB : AbstractFactory
    {
    public override Product newproduct()
    {
    return new ProductB();//子类里面实现具体的实例化
    }
    public override Car newCar()
    {
    return new CarB();
    }
    }

    public class AbstractFactoryClient
    {
    public static void GetFactoryMethod()
    {
    AbstractFactory factorysubA = new AbstractFactoryA();
    AbstractFactory factorysubB = new AbstractFactoryA();

    Product pruductA = factorysubA.newproduct();
    Product pruductB = factorysubB.newproduct();
    Car factorycarA = factorysubA.newCar();

    factorycarA.Build();

    pruductA.work();
    pruductB.work();
    }
    }

    }

  • 相关阅读:
    数组(Array)的使用方法
    Django中的事务操作
    什么是事务(Transaction)?事务的四个特性以及事务的隔离级别
    0.2 Django + Uwsgi + Nginx 的生产环境部署之实战篇
    0.1 Django + Uwsgi + Nginx 的生产环境部署之理论篇
    linux 进入编辑文件,保存退出相关命令
    Django--restframework
    使用用户名/邮箱/手机号 + 密码登陆 多形式登陆
    Django中异步任务---django-celery
    Redis 常用命令
  • 原文地址:https://www.cnblogs.com/sumg/p/3742753.html
Copyright © 2011-2022 走看看