Ich habe einige Artikel gelesen und viele Vorträge/Tutorials zu YT über DI und IoC gesehen, aber ich habe kein empfohlenes Layout von Katalogen in VS-Lösung gefunden.Was ist die empfohlene Ordnerstruktur von Katalogen im Projekt mit IoC
Ich spreche über das Projekt (ein Spiel, zum Beispiel), wo Sie einige Klassen/Schnittstellen, Logger, Datenbankanbieter, WCF-Dienste, wpf Präsentationsschicht (das ist eigentlich anderes Projekt) ...
Ist Gibt es irgendein Musterprojekt, das zeigt, wie ich mein Projekt organisieren soll, damit ein erfahrener Programmierer keine Zeit damit verschwendet, herauszufinden, was vor sich geht? Da wir von "selbstkommentarem Code" sprechen, spreche ich von "selbst kommentierter Projektstruktur".
Zum Beispiel, sollte ich alle Schnittstellen in "Schnittstellen" Katalog setzen? Oder sollte ich (im Fall von Logger) den "Logger" -Katalog erstellen und dort eine Schnittstelle, Klassen, Klassen mit Erweiterungsmethoden (alle auf die Protokollierung ausgerichtet) setzen. Der Code konzentriert sich auf das Board, im "Board" -Katalog. Getrennter Katalog für "Feld" usw. ETC
Gerade jetzt sieht die Struktur so aus. Ich bin mir nicht sicher "Business" dort und Logger. Ich habe Schnittstelle in anderem Katalog als andere Logger-Klassen. Soll ich den Log4Net-Provider anrufen? oder Adapter? oder Dekorateur? Es ist nur eine Logger-Klasse, die ILogger
Schnittstelle implementiert. Hier ist der Bildschirm: link
Hier ist der Beispielcode (es gibt keine IoC noch nicht, aber jeder wird bemerken, dass es drei Schnittstellen werden dort abgebildet Sehr einfach.):
public class Game
{
public IBoard Board { get; set; }
public Game(IBoard board)
{
Board = board;
}
}
public interface IBoard {}
public class Board : IBoard
{
public IField[,] Fields { get; set; }
public Board(IField field, int boardWidth, int boardHeight)
{
Fields = new IField[boardHeight, boardWidth];
Fields.Initialize();
}
}
public interface IField {}
public class Field : IField {}
public interface ILogger
{
void Log(LogEntry entry);
}
Strictly Meinung basiert - Nutzung Layout, das für Sie/Ihr Team arbeitet. Oft Framework, das Sie einige Layouts verwenden würden vorschlagen, (d ASP.Net MVC schlägt Controller/model/Ansichten Ordner), aber es gibt keinen wirklichen goldenen Standard für die (und es wird wahrscheinlich variiert auch zwischen verschiedenen DI-Containern). –
Werfen Sie einen Blick auf die [Zwiebel] (https://rules.ssw.com.au/do-you-know-the-layers-of-the-onion-architecture) Architektur – qujck