Beispiel #1
0
    private void Start()
    {
        DMSphere   sphere1   = new DMSphere();
        DMCylinder cylinder1 = new DMCylinder();
        DMCube     cube1     = new DMCube();
        DMCube     cub2      = new DMCube();

        DMShapeContainer container = new DMShapeContainer();

        container.AddShape(sphere1);
        container.AddShape(cylinder1);
        container.AddShape(cube1);
        container.AddShape(cub2);

        //int count = container.GetShapeCount();  //需求扩展,不符合开闭原则
        //int cubeCount=container.GetCubeCount() //需求扩展,不符合开闭原则

        //符合开闭原则
        AmountVisitor amountVisitor = new AmountVisitor();

        container.RunVisitor(amountVisitor);
        print("图形数量:" + amountVisitor.amount);

        CubeAmountVisitor cubeAmount = new CubeAmountVisitor();

        container.RunVisitor(cubeAmount);
        print("cube数量:" + cubeAmount.amount);

        EdgeVisitor edgeVisitor = new EdgeVisitor();

        container.RunVisitor(edgeVisitor);
        print("edge数量:" + edgeVisitor.count);
    }
    private void Awake()
    {
        ShapeContainer container = new ShapeContainer();

        Sphere   sphere1   = new Sphere();
        Cylinder cylinder1 = new Cylinder();
        Cylinder cylinder2 = new Cylinder();
        Cube     cube1     = new Cube();
        Cube     cube2     = new Cube();
        Cube     cube3     = new Cube();


        container.AddShape(sphere1);
        container.AddShape(cylinder1);
        container.AddShape(cylinder2);
        container.AddShape(cube1);
        container.AddShape(cube2);
        container.AddShape(cube3);

        AmountVisitor amountVisitor = new AmountVisitor();

        container.RunVisitor(amountVisitor);
        Debug.Log(amountVisitor.amount);

        CubeAmountVisitor cubeAmountVisitor = new CubeAmountVisitor();

        container.RunVisitor(cubeAmountVisitor);
        Debug.Log(cubeAmountVisitor.amount);

        EdgeAmountVisitor edgeAmountVisitor = new EdgeAmountVisitor();

        container.RunVisitor(edgeAmountVisitor);
        Debug.Log(edgeAmountVisitor.amount);
    }
Beispiel #3
0
    void Start()
    {
        DMShpere   shpere1   = new DMShpere();
        DMCylinder cylinder1 = new DMCylinder();
        DMCube     cube1     = new DMCube();
        DMCube     cube2     = new DMCube();

        DMShapeContainer container = new DMShapeContainer();

        container.AddShape(shpere1);
        container.AddShape(cylinder1);
        container.AddShape(cube1);
        container.AddShape(cube2);

        //int count = container.GetShapeCount();
        //int cubeCount = container.GetCubeCount();
        AmountVisitor amountVisitor = new AmountVisitor();

        container.RunVisitor(amountVisitor);
        int amount = amountVisitor.amount;

        Debug.Log("图形总数:" + amount);

        CubeAmountVisitor cubeAmountVisitor = new CubeAmountVisitor();

        container.RunVisitor(cubeAmountVisitor);
        int cubeAmount = cubeAmountVisitor.amount;

        Debug.Log("Cube总数:" + cubeAmount);


        EdgeVisitor edgeVisitor = new EdgeVisitor();

        container.RunVisitor(edgeVisitor);
        int edgeAmount = edgeVisitor.amount;

        Debug.Log("边总数:" + edgeAmount);
    }
Beispiel #4
0
    // Use this for initialization
    void Start()
    {
        DMSphere         sphere1   = new DMSphere();
        DMCylinder       cylinder1 = new DMCylinder();
        DMCube           cube1     = new DMCube();
        DMCube           cube2     = new DMCube();
        DMShapeContainer container = new DMShapeContainer();

        container.AddShape(sphere1);
        container.AddShape(cylinder1);
        container.AddShape(cube1);
        container.AddShape(cube2);
        // int count = container.GetShapeCount();
        // int cubeCOunt = container.GetCubeCount();
        AmountVisitor amountVisitor = new AmountVisitor();

        container.RunVisitor(amountVisitor);
        int amount = amountVisitor.amount;
        CubeAmountVisitor cubeAmountVisitor = new CubeAmountVisitor();

        container.RunVisitor(cubeAmountVisitor);
        int cubeAmount = cubeAmountVisitor.amount;
    }