c语言编程笔录

首页 >   > 笔记大全

笔记大全

有关C工厂模式简单讲解

更新时间:2023-12-23

什么是工厂模式

工厂模式是一种创建型设计模式,它提供了一种创建对象的最佳方式。在这个模式中,我们在创建对象时不会向客户端暴露创建逻辑,而是通过使用工厂类来提供创建对象的方法。使用工厂模式,我们能够将对象的创建逻辑放在一个位置。

    
        public interface IAnimal
        {
            void Speak();
        }

        public class Dog : IAnimal
        {
            public void Speak()
            {
                Console.WriteLine("旺旺");
            }
        }

        public class Cat : IAnimal
        {
            public void Speak()
            {
                Console.WriteLine("喵喵");
            }
        }

        public class AnimalFactory
        {
            public IAnimal GetAnimal(string type)
            {          
                switch (type.ToLower())
                {
                    case "dog":
                        return new Dog();
                    case "cat":
                        return new Cat();
                    default:
                        throw new ArgumentException("type错误");
                }        
            }
        }
    

工厂模式的优点

1. 工厂模式使代码维护更容易。将对象创建代码封装在一个位置,而客户端代码将不会更改。如果我们需要更改对象的创建逻辑,我们只需要更改工厂类即可,这样可以为我们的代码维护节省时间和精力。

2. 工厂模式可用于编写灵活的代码。我们可以在任何时候更改创建对象的逻辑,而不影响客户端代码。

3. 工厂模式可用于解耦。客户端代码无需知道创建对象的具体实现。它只需要调用工厂类即可。

    
        AnimalFactory animalFactory = new AnimalFactory();
        IAnimal animal = animalFactory.GetAnimal("dog");
        animal.Speak();  // 旺旺
    

工厂模式的缺点

1. 工厂模式的一个缺点是增加了代码复杂性。由于创建逻辑封装在一个类中,可能会增加代码复杂性,特别是在有多个工厂方法和产品类型时。

2. 工厂模式的第二个缺点是增加了系统的抽象性和理解难度。

    
        animal = animalFactory.GetAnimal("cat");
        animal.Speak();  // 喵喵
    

工厂模式的使用场景

1. 当一个类的对象需要根据运行时信息推迟创建时。

2. 当一个类希望由它的子类来指定它所创建的对象时。

3. 当类希望将对象的创建职责委托给多个帮助子类中的某一个,并且希望这些子类可以被客户端选择的时候。

4. 当处理大量具有相同属性的小对象或者将一个大对象拆分成多个小对象时,可以使用工厂模式提高代码复用性。

总之,工厂模式是一种简单、安全的方法来创建对象。它提供了灵活性、清晰性和容错性,对于创建和管理对象的代码有很大的帮助。