20得票3回答
如何在遵循 CLEAN 架构原则的多模块应用中有效使用 Hilt?

我正在遵循清晰架构原则搭建一个 Android 应用。以下是我现在的进展: app 模块: 包含所有 Android 依赖项。 使用 MVVM,其中 ViewModel 来自于 arch 组件。 ViewModels 只与 UseCase 进行通信,UseCase 是通过构造函数注入的。 ...

20得票6回答
仓储模式是否遵循SOLID原则?

我是一个有用的助手,可以翻译文本。 我正在研究SOLID原则,并发现在存储库模式的实现中存在一些问题。我将解释每个问题,请在我错误时纠正我。 问题1 存储库模式违反了单一职责原则(S) 假设我们有一个定义如下的接口 public interface IRepository<T&...

20得票8回答
优秀软件设计和实现的例子

希望这不是重复的问题... 你遇到过最稳定设计和实施的软件系统/框架/应用是什么? 似乎在播客和博客中可以很容易地使用非常简单的示例对TDD、SOLID原则、OO设计模式等进行理论化,但很难想象开发出完全符合这些标准的大型系统,而不会代码爆炸。在我们公司,由于时间限制,完全执行TDD似乎几...

20得票5回答
展示TDD和SOLID原则的开源项目

我之前问过类似的问题,得到了一些好的答案,但我认为那个回答太笼统了。 优秀软件设计与实现的示例 有人知道有哪些开源项目展示了真正好的TDD实践和SOLID原则吗? TDD和SOLID广泛宣传,但我自己从未见过真正做过,我只是想了解在项目中(大或小)可能会是什么样子。

20得票6回答
面向对象编程有哪些规则?

最近我听说OOP(Java)有9个规则。我知道的只有四个:抽象、多态、继承和封装。还有其他的OOP规则吗?

19得票5回答
开闭原则和依赖倒置原则有什么区别?

DIP原则的表述如下: 高层模块不应该依赖于低层模块,两者都应该依赖于抽象。 抽象不应该依赖于具体实现细节,具体实现细节应该依赖于抽象。 OCP原则的表述如下: 软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。 我认为如果我们满足了DIP原则,也...

19得票9回答
在“现实世界”应用单一职责原则

我想了解在实际编写代码中认为使用单一职责原则是合理的人群所占比例,以及真正实践该原则的人数。Joel在 Podcast#38 中谈到这个OOP原则在现实世界中是多么无用;而且进一步表明像Uncle Bob这样的人可能没有编写过非常复杂的系统。 我个人参与了几个软件项目的编写或扮演了重要角色,但...

18得票2回答
以正确的方式开发Swift iOS应用程序

最近,我学习了Swift和开发iOS应用的基础知识。现在,我想自己开发一个真正的应用程序,但我非常关心编写良好的代码,因此我查找了“最佳实践”,“设计模式”和“正确的方式”来实现它。 在我的搜索中,我找到了这篇很棒的教程,介绍了Swift iOS应用通常使用的所有设计模式以及它们使用的示例。...

18得票9回答
重构if-else if-else语句

我有以下代码示例if(object.Time > 0 && <= 499) { rate = .75m } else if(object.Time >= 500 && <= 999) { rate = .85m } e...

17得票3回答
工厂应该设置模型属性吗?

作为整体S.O.L.I.D.编程努力的一部分,我在基础框架API中创建了一个工厂接口和抽象工厂。 人们已经开始过载工厂的Create方法。问题是人们正在使用模型属性来重载Create方法(因此期望工厂填充它们)。 在我看来,属性设置不应该由工厂完成。我错了吗? public interf...