相关疑难解决方法(0)

单一责任原则是OOP的规则吗?

Stack Overflow问题的答案表明,特定框架违反了简单明了的OOP规则:单一责任原则(SRP).

单一责任原则真的是OOP的规则吗?

我对面向对象编程的定义的理解是"使用对象及其行为来创建软件的范例".这包括以下技术:封装,多态和继承.

现在不要误解我的意思 - 我认为SRP是大多数优秀OO设计的关键,但我觉得有些情况下这个原则可以而且应该被打破(就像数据库规范化规则一样).我积极推动SRP的好处,我的绝大多数代码都遵循这一原则.

但是,它是一个规则,因此暗示它不应该被打破吗?

oop

22
推荐指数
3
解决办法
3547
查看次数

如何在类后面隐藏逻辑以提高方法的可读性并重构类以遵循SRP?

我有一种算法可以为实体创建一个版本,然后将其保存在下面的2个实体中:

1)变体

2)类别

interface IEntityVersion
{
    string GetVersion();
}

public class EntityVersion : IEntityVersion
{
    public string GetVersion()
    {
        return null;
    }
}

public interface IVariant
{
    void Process(Variant model, string connectionString);
}

public abstract class BaseVariant : IVariant
{
    private readonly IEntityVersion _entityVersion = new EntityVersion();

    public void Process(Variant model, string connectionString)
    {
        try
        {
            Transform();
            string variantVersion = _entityVersion.GetVersion();
            using (var myConnection = new SqlConnection(connectionString))
            {
                myConnection.Open();
                using (var transaction = myConnection.BeginTransaction())
                {
                    try
                    {
                        VariantRepo.UpdateVariantVersion(
                          myConnection,
                          transaction, …
Run Code Online (Sandbox Code Playgroud)

.net c# refactoring single-responsibility-principle

9
推荐指数
1
解决办法
382
查看次数