【发布时间】:2017-12-23 05:04:50
【问题描述】:
我正在构建一个调用各种 API 的应用程序,作为 SOLID 原则以及一个类应该如何承担单一职责的新手,我希望在设计我的类时考虑到 SOLID,
Internal class API_Caller
{
public static getInfor1()
{
// do something in here
}
public static getInfo2()
{// do something }
public static getInfo3()
{// do something}
}
如果我的班级有不止一种方法,它是否遵循 SOLID 并且,
另一种方法是,如果所有方法都是私有的,那么我会尽可能少地公开 (When should methods be made private?),但这是一种好的设计模式还是应该将方法分成不同的类??
internal class API_Caller
{
public Static CALL_APIs (API_Name)
{
switch (API_Name)
{
case "getinfo1":
getInfor1();
break;
case "getinfo2":
getinfo2();
break;
}
}
private static getInfor1(){// do something}
private static getInfo2(){// do something}
private static getInfo3(){// do something}
}
【问题讨论】:
-
它被称为单一责任而不是单一方法是有原因的。一个类可以有多个公共方法并且有一个单一的职责。
-
SOLID 只是常识。您不会“仅仅因为”在不同的类中提取方法。你这样做是因为他们在一起看起来很丑——他们所做的事情有很大的不同,很明显他们不应该在一起。或者一个单个方法太长了,做了很多事情,很明显它应该被拆分
-
我投票结束这个问题,因为它属于codereview.stackexchange.com
-
这不是关于什么是“单一责任”和什么不是“单一责任”的强硬路线,我发现最好的解释是一个班级应该只有一个改变的理由,但这也是工资。也可能想看看naming conventions 我发现它们和模式一样重要。
-
想想谁来消费接口——如果getInfor1和getInfor2不会一起使用,考虑接口隔离原则
标签: c# oop methods solid-principles