Add Design Patterns

This commit is contained in:
2026-01-20 10:30:21 +01:00
parent 4a83bd3d5a
commit b9e8eb590c
24 changed files with 298 additions and 3 deletions

10
VisitorLib/Circle.cs Normal file
View File

@@ -0,0 +1,10 @@
namespace VisitorLib;
public class Circle: Shape
{
public int Radius { get; set; }
public override void Accept(IShapeVisitor visitor)
{
visitor.VisitCircle(this);
}
}

View File

@@ -0,0 +1,7 @@
namespace VisitorLib;
public interface IShapeVisitor
{
void VisitRectangle(Rectangle rectangle);
void VisitCircle(Circle rectangle);
}

10
VisitorLib/Rectangle.cs Normal file
View File

@@ -0,0 +1,10 @@
namespace VisitorLib;
public class Rectangle: Shape
{
public int Area { get; set; }
public override void Accept(IShapeVisitor visitor)
{
visitor.VisitRectangle(this);
}
}

6
VisitorLib/Shape.cs Normal file
View File

@@ -0,0 +1,6 @@
namespace VisitorLib;
public abstract class Shape
{
public abstract void Accept(IShapeVisitor visitor);
}

View File

@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<RootNamespace>VisitorLib</RootNamespace>
</PropertyGroup>
</Project>