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()); }