标签: solid-principles

在SOLID中,SRP和ISP有什么区别?(单一责任原则和界面隔离原则)

如何在SOLID "接口分离原则",从"单一职责原则"有什么不同?

SOLID的维基百科条目说明了这一点

ISP将非常大的接口拆分为更小和更具体的接口,这样客户端只需知道它们感兴趣的方法

但是,对我来说,这听起来只是将SRP应用于接口和类.毕竟,如果一个界面只负责一个概念性的东西,那么你将无法进一步分解它.

我错过了什么,或者是SR与SRP有多余?如果没有,那么ISP是什么意味着SRP没有?

oop design-patterns single-responsibility-principle solid-principles interface-segregation-principle

43
推荐指数
4
解决办法
6048
查看次数

开放/封闭原则背后的含义和推理是什么?

开放/封闭原则规定软件实体(类,模块等)应该是可以扩展的,但是对于修改是封闭的.这意味着什么,为什么它是良好的面向对象设计的重要原则?

oop definition design-principles open-closed-principle solid-principles

42
推荐指数
7
解决办法
6246
查看次数

根据SOLID编写JavaScript

有没有人在开发JavaScript时使用SOLID编程原理(或任何部分)?

我刚开始阅读它,但似乎找不到任何人用它来JS.我发现易于实施/使用的唯一部分是"单一责任原则".

我正在寻找的是使用这些原则的文章或例子.有没有争论为什么不应该使用某些部分?

例如,"接口隔离原则"表示"许多客户端特定接口优于一个通用接口的概念".

但据我所知,JS中没有接口这样的东西(如果它会很好).

javascript solid-principles

40
推荐指数
2
解决办法
2万
查看次数

SOLID原则真的很扎实吗?

这个缩写词中第一个字母的设计模式是单一责任原则.这是一个引用:

单一责任原则规定每个对象应该承担单一责任,并且该责任应该由班级完全封装.

在我们开始编码之前,这很简单明了.假设我们有一个具有明确定义的单一责任的类.要序列化类实例,我们需要为该类添加特殊的属性.所以现在班上有另一个责任.这不违反SRP吗?

让我们看另一个例子 - 接口实现.当我们实现接口时,我们只需添加其他职责,比如处理其资源或比较其实例或其他任何内容.

所以我的问题.是否有可能严格遵守SRP?怎么做到呢?

.net c# design-patterns solid-principles

39
推荐指数
5
解决办法
5862
查看次数

似乎无法理解SOLID原理和设计模式

我最近试图进入OOP,而我在使用SOLID原则和设计模式方面遇到了麻烦.我明白为什么人们会使用它们,我也真的想要使用它们,但我不能完全按照规范开发我的类.我真的很感激有助于我理解这一点的任何事情.

oop design-patterns solid-principles

38
推荐指数
1
解决办法
1万
查看次数

您如何定义单一责任?

我知道"班级有一个改变的理由".现在,到底是什么?是否有一些气味/迹象可以说明该课程没有一个责任?或者,真正的答案是否可以隐藏在YAGNI中,并且只有在您的班级第一次更改时才重构一项责任?

oop single-responsibility-principle solid-principles

36
推荐指数
6
解决办法
3078
查看次数

在Bootstrapper中配置Automapper违反了开放封闭原则?

我在引导程序配置Automapper和我打电话Bootstrap()Application_Start(),我一直在说,这是错误的,因为我要修改我的Bootstrapper每一次我必须添加一个新的映射类,所以我违反了开闭原则.

你觉得怎么样,我真的违反了这个原则吗?

public static class Bootstrapper
{
    public static void BootStrap()
    {
        ModelBinders.Binders.DefaultBinder = new MyModelBinder();
        InputBuilder.BootStrap();
        ConfigureAutoMapper();
    }

    public static void ConfigureAutoMapper()
    {
        Mapper.CreateMap<User, UserDisplay>()
            .ForMember(o => o.UserRolesDescription,
                       opt => opt.ResolveUsing<RoleValueResolver>());
        Mapper.CreateMap<Organisation, OrganisationDisplay>();
        Mapper.CreateMap<Organisation, OrganisationOpenDisplay>();
        Mapper.CreateMap<OrganisationAddress, OrganisationAddressDisplay>();
    }    
}
Run Code Online (Sandbox Code Playgroud)

.net bootstrapping automapper open-closed-principle solid-principles

35
推荐指数
1
解决办法
9710
查看次数

单一责任原则的例子是什么?

有人能给我一个单一责任原则的例子吗?我试图理解,在实践中,一个班级有一个单一的责任,因为我担心我可能每天都违反这条规则.

oop single-responsibility-principle definition design-principles solid-principles

34
推荐指数
2
解决办法
3万
查看次数

任何人都可以使用车辆提供Liskov替代原则(LSP)的示例吗?

Liskov替换原则规定子类型应该可替代该类型(不改变程序的正确性).

  • 有人可以在车辆(汽车)领域提供这个原则的例子吗?
  • 有人可以提供一个在车辆领域违反这一原则的例子吗?

我已经读过关于方形/矩形的例子,但我认为车辆的一个例子可以让我更好地理解这个概念.

oop liskov-substitution-principle solid-principles

33
推荐指数
2
解决办法
1万
查看次数

SOLID用于函数式编程

来自OOP语言,我熟悉面向对象设计的SOLID原则.似乎其中一些适合功能性编程模型,而其他部分在缺乏状态的世界中毫无意义.重构功能代码是否有类似的原则?

functional-programming solid-principles

31
推荐指数
3
解决办法
5287
查看次数