首页 > TAG信息列表 > solid-principles

我在哪里可以找到同时符合OOP原则和SOLID原则的代码示例?

在哪里可以找到同时符合OOP原则和SOLID原则的c#代码示例? 我搜索了google,但找不到与解决这两组原则直接相关的任何代码示例或业务问题的解决方案. 谢谢解决方法:我会推荐马克·西曼(Mark Seemann)的书:Dependency Injection in .Net,太神奇了! 它已经内置了所有SOLIDity,并提供了详细

CodeGo.net>使用DbContext的SOLID方式

通过直接依赖于命令和查询处理程序中的DbContext,我了解到我违反了StackOverflow user的注释中的SOLID-principles: The DbContext is a bag with request-specific runtime data and injecting runtime data into constructors causes trouble. Letting your code having a

我的Mapper类应该注入到我的控制器中还是可以直接实例化它?

在我的控制器中,所有依赖项都是通过注入(在Dependency inversion principle之后)来接收的,除了其中之一,Mapper类是由构造函数实例化的: public class HomeController : Controller { private readonly ISomeAppService SomeAppService; private readonly Mapper Mapper;

Java Simple Factory具有使用不同参数的构造函数

我有两种在应用程序中保存数据的方式:保存到数据库和保存到文件.因为我不希望使用客户端代码来处理对象的构造,所以我创建了一个类(据我所知)是带有工厂方法的简单工厂.代码如下: public static DataPersister createDataPersister(Boolean saveToDb, Session session, String filen

您如何让IDE识别来自使用字符串实例化类的PHP工厂的用法?

我喜欢在大多数情况下如何使用工厂模式来帮助您坚持SOLID开发.我不太了解的一件事是在构建工厂时如何使IDE识别使用情况.例如: <?php class ProductFactory { public static function build($product_type, $name) { $productClass = 'Product' . ucwords($product_type);

c#-依赖注入和MVVM中的单一职责原则

使用DI和构造函数注入时,有一个有用的指示符表明是否违反了SRP,因为构造函数的参数数量将增加到我们开始感到不安的数量.通过将其重构为明智的量身定制的类并使用立面服务和类似方法来解决这一问题. 但是,对于MVVM尤其是视图模型,我很难应用这些规则.视图模型本质上负责提供命令,这

php – 如何在完整的OO应用程序中处理依赖注入

我在课堂设计上陷入两难境地. 我正在尽力尊重SOLID原则,但我不知道如何处理依赖注入. 这是我的困境: >我认为在类中实例化对象以避免引入依赖是一种不好的做法.那么在完整对象应用程序中应该在哪里创建依赖项呢?在一个只负责依赖实例化的特殊对象中?如果是,该对象的名称是什么以及如何

c# – 这违反了SOLID原则吗?

我的项目中有这样的东西,项目已经完成了(它正在工作) 我只想知道SOLID原则是否合适 static public class Tools { static public GetProduct(this id){...} static public GetProductCategory(this id){...} static public GetUser(this id){...} // I also ha

c# – 依赖注入/ SOLID忧虑

我有一个用C#编写的Web API应用程序.我正在努力确保设计符合SOLID原则.因此我使用Unity将依赖项注入我的控制器.但是我希望将控制器执行的操作从控制器本身中取出,因此它们实际上只是在其他(通常是静态的)对象上调用方法.例如: public class MyController : ApiController { pr

使用C#接口,同时最大化代码重用

所以说我有一个C#类, class Foo : Bar, IBar, IBar2 { } …其中Bar是一个类,IWhatever和IFine是接口.我打算在多个类中使用类似的IWhatever和IFine实现 – 我可以看到封装这些代码并在所有类中重用它的唯一理智方法是创建一个类,无论继承自IW和I的继承自IFine和使它们成为实现这

c# – 关于类或对象的接口隔离原则是什么?

提醒(从wiki): The interface-segregation principle (ISP) states that no client should be forced to depend on methods it does not use. 现在看看我的例子. 这是我可变的实体.它是从某个地方编辑的,它能够通过只读接口通知有关更改: interface ICounter { event Act

python – SQLAlchemy:知道模型对象的字段名称和值?

我正在尝试保持SOLID面向对象的编程原则,保持DRY等,但我对Python / SQLAlchemy / Pyramid的新见感正在变得非常困难. 我正在尝试将我现在所知道的SQLAlchemy模型用于创建一个简单的Pyramid Framework对象并使用我所知道的C#中的“反射”,它可能在Python中被称为不同的东西(Introspe

c# – 使用关系中的属性为子类建模的正确方法

我有一个有雇主名单的诉讼类.要求列表中的一个雇主必须被设定为主要雇主.我想到了两种方法来满足这个业务规则. 解决方案1 这是我当前的实现,我有一个MainEmployer,我在同一个属性和Employers列表上存储相同的实体: public class Lawsuit() { public int Id { get; set; }

c# – SOLID,SRP,IComparable

好的,在单个类上实现IComparable和其他接口(如IDisposable)违反了SRP原则. SRP指出,每个班级都应该实现信号责任,并且方法应该在很大程度上相互联系,以实现有凝聚力的班级. 是不是比较另一个责任? 一些澄清将不胜感激.解决方法:如果我是你,我会努力坚持SRP,但不是那么严格,因为努力

java – 没有反射就可以确定要运行的类

所以我处在一种情况,我希望有一个包含要运行的类的对象数据库.它看起来像: id | Description | pricingClass 1 | "static pricing" | staticDeliveryPrice.class 2 | "Dynamic pricing" | dynamicDeliveryPrice.class 这样做的目的是允许我的编码灵活.我的想法是,这

c# – 这是DIP(SOLID)的有效使用吗?

我想问一下基因型和个体类的实现是否违反了依赖性倒置原则?如果是这样,如何解决? 这是代码: public interface IGenotype { //some code... } public abstract class AIndividual { // ... some code public IGenotype Genotype { get; set;} // DIP likes that ! } p

PHP – 架构设计帮助 – OOP固体原则

我正在尝试制作开源缓存库.库的目的是提供将变量(可以是对象,可以是数组,可以是任何东西)存储到文件中然后在调用时检索它的方法. (通常那些变量值是大量数据库查询和计算的结果). 该项目的基本目标是实践面向对象的设计原则,称为实体. 如果任何人可以指出我违反固体原则的地方以及

php – LARAVEL:如何使用Open Close原理的SOLID原理?

我有一个以下结构来使用Open Close Principle class Payment{ //this is not a model class // according to OC principle this class should not focus on the implementation private $paymentInterface; public function __construct(PaymentInterface $p

php – SOLID原则中的SRP是否导致了Lasagna Code?

有了SOLID原则,特别是SRP,我们有很多类…… 我的意思是,就像你想要构建一个数据库类一样然后,你有处理数据库的DatabaseHandler类(选择,插入,更新,删除等),DatabaseAdapter类,它是一个扩展的PDO类(可以在构造中设置首选的默认模式,一个新的prepare方法直接准备语句,将它与param绑定