一:简单工厂
模型:

案例:
namespace 简单工厂
{
class Program
{
static void Main(string[] args)
{
Factory f = new Factory();
f.N1("大众");
f.N2("保时捷");
Console.Read();
}
//1.属于创建型模型;
//2.静态类;
//3.拥有一个工厂方法(create),接受一个参数,创建不同的产品;
//4.可以生产同一个产品同一个等级结构中的任意产品;
//优点:可以实例化任何类;
//缺点:负担太重,代码量太大;无法遵守开闭原则;
//场景:知道传入工厂类的参数,对创建对象(逻辑)不关心;
//实例:Java中的JDBC操作数据库
class Car
{
public string Name { get; set; }//汽车名称
}
class Bug
{
public string Name { get; set; }
}
//工厂类
class Factory
{
Car c = new Car();
Bug b = new Bug();
//方法一
public void N1(string name)
{
Console.WriteLine("汽车的名字为:{0}", name);
}
//方法二
public void N2(string name)
{
Console.WriteLine("汽车的名字为:{0}", name);
}
}
}
}
结果:

二:工厂方法
//1.每一种产品提供一个产品;
//2.生产同一产品同一等级结构中的固定产品;
//3.定义一个创建对象的接口;
//缺点:相对于简单工厂实现较为复杂;
//生成产品族的情况处理比较复杂;
//优点:不需要关心创建的细节;
//多态性工厂模式,符合开闭原则;
//实现了可扩展性;
模型:

案例:
①:需要的类

②:各自的细节

③:各自的代码







三:抽象工厂
//1.生产不同产品族的全部产品;
//2.针对于系列;
//优点:当一个产品族中的多个对象被设计成一起工作时,它能保证客户端始终只使用同一个产品族中的对象;
//缺点:产品族扩展非常困难;产品等级容易扩展;
//应用场景:QQ换肤;生成不同操作系统的程序;
模型:

案例:
①:需要的类

②:具体 代码



其他类如同上述;
结果:
点击院长按钮显示出内容:

本文详细介绍了简单工厂、工厂方法和抽象工厂三种设计模式的区别与联系。简单工厂模式适用于创建同一等级结构中的任意产品,但可能导致代码过于臃肿。工厂方法模式则更注重多态性,允许创建同一产品族中的固定产品,符合开闭原则。抽象工厂模式关注产品族的创建,适用于产品系列的设计,但扩展性较差。文章通过具体代码示例帮助读者理解这些概念。
9579

被折叠的 条评论
为什么被折叠?



