生成器模式(Builder)将一个复杂对象的创建与表示分离开,对其复杂的创建过程和部件进行解耦,使同样的创建过程可以创建不同的表示.

         如果当你的对象的创建过程可以和每个部件的创建过程分离开,并且可能通过组装不同的创建部件可以生成不同的对象.就可以使用生成器模式.

         如同生成一个汽车,你可以通过不同的组装方式来创建一个不同类型的汽车.

    public interface IBuilder

    {

        void BuildEngine();    // 发动机

        void BuildTyre();      // 轮胎

        void BuildSteer();     // 方向盘

    }   // interface IBuilder

 

    public class Builder : IBuilder

    {

        public void BuildEngine() { }

        public void BuildTyre() { }

        public void BuildSteer() { }

        public Product GetProduct()

        {

            return new Product();

        }

    }   // class Builder

 

    public class Product { }

 

    public class Director

    {

        private IBuilder m_builder;

        public Director(IBuilder builder)

        {

            m_builder = builder;

        }

        public void CreateModel()

        {

            m_builder.BuildEngine();

            m_builder.BuildTyre();

            m_builder.BuildSteer();

        }

        public void CreateCar()

        {

            m_builder.BuildTyre();

            m_builder.BuildSteer();

        }

    }   // class Director

 // 生产模型汽车

IBuilder builder = new Builder();

Director director = new Director(builder);

director.CreateModel();

posted on 2014-12-31 14:16  Boom_蘑菇云  阅读(52)  评论(0)    收藏  举报