我已经阅读了很少的文章并观看了很多有关DI和IoC的YT讲座/教程,但我没有在VS解决方案中找到任何推荐的目录布局.
我在谈论项目(例如游戏),你有几个类/接口,记录器,数据库提供程序,wcf服务,wpf表示层(实际上是不同的项目)......
是否有任何模式项目,显示我应该如何组织我的项目,接下来,有经验的程序员不会浪费时间搞清楚发生了什么?就像我们谈论"自我评论的代码"一样,我在谈论"自我评论的项目结构".
例如,我应该将所有接口放入"接口"目录吗?或者我应该(在记录器的情况下)创建"Logger"目录并将接口,类,类与扩展方法放在一起(所有,专注于日志记录).代码集中在Board,在"Board"目录中.单独的"Field"等目录等.
现在结构看起来像那样.我不确定那里的"商业"和Logger.我有不同目录中的接口,然后是其他记录器类.我应该致电Log4Net提供商吗?还是适配器?还是装饰者?它只是一个实现ILogger接口的记录器类.这是屏幕:链接
下面是示例代码(还没有IoC,但是每个人都会注意到会有3个接口映射.非常简单):
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);
}
Run Code Online (Sandbox Code Playgroud) .net c# architecture dependency-injection inversion-of-control