我已经阅读了很多关于DI和IoC的文章并在YT上看了许多讲座/教程,但我没有发现任何VS解决方案目录的推荐布局。
我说的是项目(例如游戏),其中有一些类/接口、记录器、数据库提供程序、wcf服务、wpf表示层(实际上是不同的项目)...
是否有任何模式项目,展示应该如何组织我的项目,这样下一个有经验的程序员就不会浪费时间去弄清楚发生了什么?像我们谈论“自注释代码”一样,我谈论的是“自注释项目结构”。
例如,我应该将所有接口放入“Interfaces”目录中吗?或者我应该(在记录器的情况下)创建“Logger”目录,并将其放置在接口、类、具有扩展方法的类中(全部,专注于记录)。在“Board”目录中专注于板块的代码。单独的目录用于“Field”等等..
现在的结构看起来像这样。我对“Business”和“Logger”不太确定。我在不同的目录中有接口和其他日志记录器类。我应该调用Log4Net提供程序吗?适配器?还是装饰器?它只是实现ILogger接口的一个记录器类。这里是屏幕:link 这是示例代码(还没有IoC,但所有人都会注意到将有3个接口被映射。非常简单):
我说的是项目(例如游戏),其中有一些类/接口、记录器、数据库提供程序、wcf服务、wpf表示层(实际上是不同的项目)...
是否有任何模式项目,展示应该如何组织我的项目,这样下一个有经验的程序员就不会浪费时间去弄清楚发生了什么?像我们谈论“自注释代码”一样,我谈论的是“自注释项目结构”。
例如,我应该将所有接口放入“Interfaces”目录中吗?或者我应该(在记录器的情况下)创建“Logger”目录,并将其放置在接口、类、具有扩展方法的类中(全部,专注于记录)。在“Board”目录中专注于板块的代码。单独的目录用于“Field”等等..
现在的结构看起来像这样。我对“Business”和“Logger”不太确定。我在不同的目录中有接口和其他日志记录器类。我应该调用Log4Net提供程序吗?适配器?还是装饰器?它只是实现ILogger接口的一个记录器类。这里是屏幕:link 这是示例代码(还没有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);
}