小编adm*_*xon的帖子

键入Casting和Factory模式

我正在努力想出如何在我试图创建的DTO映射器中实现工厂模式.我很确定我需要重新考虑我的设计.这是我正在运行的一个非常小的例子:

    public abstract class Person
{
    public string Name { get; set; }
    public decimal Salary { get; set; }
}

public class Employee : Person
{
    public Employee()
    {
        this.Salary = 20000;
    }

}

public class Pilot : Person
{
    public string PilotNumber { get; set; }

    public Pilot()
    {
        this.Salary = 50000;
    }
}

public static class PersonFactory
{
    public static Person CreatePerson(string typeOfPerson)
    {
        switch (typeOfPerson)
        {
            case "Employee":
                return new Employee();
            case "Pilot":
                return new Pilot(); …
Run Code Online (Sandbox Code Playgroud)

c# factory-pattern

6
推荐指数
2
解决办法
5254
查看次数

API架构

我正在设计API.我想知道我提出的是一个很好的解决方案:

我有一个存储库类型的数据层,通过将业务类转换为实体(从LLBL GEN生成,我不想直接使用实体作为我的业务对象,与数据库对话,因为我想保持它们简单并允许我交换到Entity Framework或其他一些mapper是我需要的)

我有一个WCF服务层,我正在使用它作为一种外观.它调用存储库层并将业务对象转换为DTO,并通过API服务调用将它们传递给客户端.客户端可以是ASPX网站,Silverlight应用程序,WPF应用程序,甚至是WP7应用程序.我保持运行的问题是当我想运行业务逻辑时,我必须将DTO发送回WCF服务然后再返回客户端.这对我来说似乎并不"正确".我不能把业务逻辑放在DTO中,因为这会破坏目的.但是,如果我希望在客户端上运行业务类型代码,那么在我的不同客户端中我会有大量的代码重复.

我的业务层不知道数据层,我的数据层知道业务层,我的外观层知道数据层和业务层以及DTO.这对API来说是一个糟糕的设计吗?任何人都可以给我任何建议吗?我只是通过在线阅读不同的文章了解了企业级应用程序.

谢谢!

c# api enterprise design-patterns

5
推荐指数
1
解决办法
944
查看次数

C#Enums vs数据驱动列表

我试图找出最好的方法来设计我的枚举.假设我有一个类和枚举:

public enum ActionType
{
    Acceptable = 1,
    Unacceptable = 2,
    PendingReview = 3        
}
public class Report
{
    public ActionType Action { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

假设我还有一个存储不同动作类型的数据库表:

Id     Action
1      Acceptable
2      Unacceptable
3      PendingReview
Run Code Online (Sandbox Code Playgroud)

如果我想在以后添加其他类型的操作,我将不得不更新枚举并重新部署程序集.但我喜欢枚举减少错误,使代码更易于阅读以及保证向前兼容性的方式.什么是一种有效的方式来处理新的动作类型?

谢谢!

c# oop enums design-patterns

3
推荐指数
1
解决办法
1535
查看次数

标签 统计

c# ×3

design-patterns ×2

api ×1

enterprise ×1

enums ×1

factory-pattern ×1

oop ×1