相同的处理方法写成了一个方案,
23中设计模式中的一种:工厂模式
根据用户的需求,创建对象赋值给父类,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SimpleFactory
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("输入你要的笔记本品牌");
string brand = Console.ReadLine();
NoteBook nb = GetNoteBook(brand);
nb.Create();
Console.ReadKey();
}
public static NoteBook GetNoteBook(string brand)
{
NoteBook nb = null;
switch (brand)
{
case "Lenovo":nb = new Lenovo();
break;
case "DELL":nb = new DELL();
break;
case "MacBook": nb = new MacBook();
break;
}
return nb;
}
}
abstract class NoteBook
{
public abstract void Create();
}
class Lenovo : NoteBook
{
public override void Create()
{
Console.WriteLine("生产联想笔记本");
}
}
class DELL : NoteBook
{
public override void Create()
{
Console.WriteLine("生产戴尔笔记本");
}
}
class MacBook : NoteBook
{
public override void Create()
{
Console.WriteLine("生产苹果笔记本电脑");
}
}
}
/* 工厂模式 也称静态工厂类
*
* 一个抽象的产品类可以派生出多个产品类,他们具有共同的父类
* 工厂类:工厂类是核心类,它负责创建所有实例的内部逻辑,工厂类可以直接被调用创建产品类实例
* 抽象产品类:简单工厂模式所创建的所有对象的父类,负责描述所有实例所拥有的公共接口
* 具体产品类:简单工厂创建的具体实例对象
*
* 工厂类是整个模式的关键,他需要进行必要的逻辑判断,根据用户需要的信息决定创建那个对象的实例,
*
* 优点:降低了程序之间的耦合,(例如增加车间并不影响其他车间的生产速度,)
* 提高程序的扩展性,
* 组装生产车间可以免除直接创建对象的责任,由专业的工厂类创建
*
* 缺点:每创建一个生产车间,就增加了一定的开发量
* 由于工厂类集中了所有实例的创建逻辑,违反了高类聚责任分配原则
*
* 使用场景:工厂类创建的对象比较少
* 需求者只需要传进工厂类的参数,对于如何创建对象不关心
*
*/