设计模式——建造者Build(Unity3D中应用)

    xiaoxiao2025-04-20  8

    Build(建造者模式) 构建与表示分离 与工厂模式不同的是:工厂注重在于创建,Builder注重在于构建(创建细节)

    public class House { public string Foundation{ get; set;} public string Wall{get; set;} public string Roof{ get; set;} public string ToString() { return Foundation + " " + Wall +" "+ Roof; } } public abstract class Builder { public abstract void BuildFoundation (string foundation); public abstract void BuildWall(string wall); public abstract void BuildRoof(string roof); public abstract House Create (); } public class RobotBuilder:Builder { House house = new House(); public override void BuildFoundation (string foundation) { house.Foundation = foundation; } public override void BuildWall (string wall) { house.Wall = wall; } public override void BuildRoof (string roof) { house.Roof = roof; } public override House Create() { return house; } } public class Director { private Builder builder; public Director (Builder builder) { this.builder = builder; } public void Construct(string foundation,string wall,string roof) { builder.BuildFoundation(foundation); builder.BuildWall(wall); builder.BuildRoof(roof); } } public class BuilderTest : MonoBehaviour { private void Start () { Builder builder = new RobotBuilder (); Director director = new Director (builder); director.Construct ("普通地基","普通墙","普通屋顶"); House house = builder.Create (); Debug.Log (house.ToString()); } }

    有时可以省略Director层:

    public class RobotBuilder:Builder { House house = new House(); public override Builder BuildFoundation (string foundation) { house.Foundation = foundation; return this; } public override Builder BuildWall (string wall) { house.Wall = wall; return this; } public override Builder BuildRoof (string roof) { house.Roof = roof; return this; } public override House Create() { return house; } } public class BuilderTest : MonoBehaviour { private void Start () { Builder builder = new RobotBuilder (); House house = builder.BuildFoundation ("玻璃地基") .BuildWall("玻璃墙") .BuildRoof("玻璃屋顶") .Create(); Debug.Log (house.ToString()); } }

    总结: 建造者模式用于组装对象,简化复杂对象的子部件构造过程

    转载请注明原文地址: https://ju.6miu.com/read-1298254.html
    最新回复(0)