示例#1
0
        public Ship GetShip()
        {
            //var builder = new ShipBuilder(Owner, Battle, x, endx, y, endy, isHorizontal);
            IShipBuilder        shipabstractbuilder = new ShipBuilder(Owner, Battle, x, endx, y, endy, isHorizontal);
            AbstractShipBuilder builder             = new AbstractShipBuilder(shipabstractbuilder);

            ShipChain buildReset       = new BuildReset(builder);
            ShipChain buildBase        = new BuildBase(builder);
            ShipChain buildCoordinates = new BuildCoordinates(builder);
            ShipChain buildSize        = new BuildSize(builder);

            buildReset.SetNextChain(buildBase);
            buildBase.SetNextChain(buildCoordinates);
            buildCoordinates.SetNextChain(buildSize);
            buildSize.SetNextChain(null);

            ShipChain mainBuild = buildReset;

            mainBuild.Build();
            System.Diagnostics.Debug.WriteLine("Chain of responsibility: shipbuilding chain executed");

            //builder.BuildBase();
            //builder.BuildCoordinates();
            //builder.BuildSize();

            return(builder.GetShip());
        }