Skip to content

Commit 719c33d

Browse files
committed
Added decorator pattern
1 parent aa68219 commit 719c33d

25 files changed

+648
-2
lines changed

Assets/Patterns/20. Decorator.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Patterns/20. Decorator/Tesla order system.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Patterns/20. Decorator/Tesla order system/Car parts.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
namespace Decorator.OrderSystem
6+
{
7+
public class Cybertruck : _Car
8+
{
9+
public Cybertruck()
10+
{
11+
this.description = "Cybertruck";
12+
}
13+
14+
public override string GetDescription() => this.description;
15+
16+
public override float Cost() => PriceList.cybertruck;
17+
}
18+
}

Assets/Patterns/20. Decorator/Tesla order system/Car parts/Cybertruck.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Patterns/20. Decorator/Tesla order system/Car parts/Extras.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
namespace Decorator.OrderSystem
6+
{
7+
public class DracoThruster : _CarExtras
8+
{
9+
private _Car prevCarPart;
10+
11+
12+
public DracoThruster(_Car prevCarPart, int howMany)
13+
{
14+
this.prevCarPart = prevCarPart;
15+
this.howMany = howMany;
16+
}
17+
18+
19+
public override string GetDescription() => $"{prevCarPart.GetDescription()}, {howMany} Draco Thruster";
20+
21+
22+
public override float Cost() => (PriceList.dracoThruster * howMany) + prevCarPart.Cost();
23+
}
24+
}

Assets/Patterns/20. Decorator/Tesla order system/Car parts/Extras/DracoThrusters.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
using System.Collections;
2+
using System.Collections.Generic;
3+
using UnityEngine;
4+
5+
namespace Decorator.OrderSystem
6+
{
7+
public class EjectionSeat : _CarExtras
8+
{
9+
private _Car prevCarPart;
10+
11+
12+
public EjectionSeat(_Car prevCarPart, int howMany)
13+
{
14+
this.prevCarPart = prevCarPart;
15+
this.howMany = howMany;
16+
}
17+
18+
19+
public override string GetDescription() => $"{prevCarPart.GetDescription()}, {howMany} Ejection Seat";
20+
21+
22+
public override float Cost() => (PriceList.ejectionSeat * howMany) + prevCarPart.Cost();
23+
}
24+
}

Assets/Patterns/20. Decorator/Tesla order system/Car parts/Extras/EjectionSeat.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)