标签: responsibility

缓存/记忆功能结果的责任是什么?

我正在研究允许用户通过实现一组接口来扩展系统的软件.

为了测试我们正在做的事情的可行性,我的公司通过在用户完全相同的方式中实现这些类中的所有业务逻辑来" 吃掉自己的狗食 ".

我们有一些实用程序类/方法将所有内容绑定在一起并使用可扩展类中定义的逻辑.


我想缓存用户定义函数的结果.我应该在哪里这样做?

  • 是班级本身吗?这似乎可能会导致很多代码重复.

  • 它是使用这些类的实用程序/引擎吗?如果是这样,不知情的用户可以直接调用类函数,而不是获得任何缓存优势.


示例代码

public interface ILetter { string[] GetAnimalsThatStartWithMe(); }

public class A : ILetter { public string[] GetAnimalsThatStartWithMe()
                           { 
                               return new [] { "Aardvark", "Ant" }; 
                           }
                         }
public class B : ILetter { public string[] GetAnimalsThatStartWithMe()
                           { 
                               return new [] { "Baboon", "Banshee" }; 
                           } 
                         }
/* ...Left to user to define... */
public class Z : ILetter { public string[] GetAnimalsThatStartWithMe()
                           { 
                               return new [] { "Zebra" };
                           }
                         }

public …
Run Code Online (Sandbox Code Playgroud)

c# caching responsibility

7
推荐指数
2
解决办法
975
查看次数

数据访问层 - 设计类应该在哪里创建存储的责任

我正在使用ADO.NET 2.0和C#,Sql Server 2005设计数据访问层.我经常与大脑争论放置这些调用的位置.对于可维护的健壮代码,我应遵循以下哪种方式.

方法1

Public Class Company
{

public string CompanyId
{get;set;}

public string CompanyAddress
{get;set;}

public bool Create()
{
}

public bool Update()
{
}

public bool Delete()
{
}

}
Run Code Online (Sandbox Code Playgroud)

方法2

Public Class Company
{

public string CompanyId
{get;set;}

public string CompanyAddress
{get;set;}
}
Run Code Online (Sandbox Code Playgroud)

我会使用下面的另一个类来进行核心数据访问.如下

Public Class CompanyRepository
{

public Company CreateCompany(string companyId,string companyDescription)
{
}

public bool UpdateCompany(Company updateCompany)
{
}

public bool DeleteCompany(string companyId)
{
}

public List<Company> FindById(string id)
{
}


}
Run Code Online (Sandbox Code Playgroud)

c# data-access-layer responsibility

6
推荐指数
1
解决办法
1390
查看次数

MVVM是哪个模式的一部分负责数据网格的分组

我一直在修改MVVM模式,现在我正在尝试基于它实现一个小应用程序.

这个应用程序有一个数据网格,令人惊讶的是,它提供了一些数据.现在我正在尝试添加一些分组功能.我知道如何在代码(C#和XAML)中编写它,但我想知道应该在哪个层中放置负责任的代码.

我的一部分告诉我它应该在视图中,因为它是特定于该特定视图的代码.它不是通用的,只服务于一个目的:对数据进行分组.

另一方面,我认为我应该使用命令在ViewModel中处理它.但是,感觉好像我用View特定的逻辑污染了我的ViewModel.

任何可以脱落的韧带?

c# wpf mvvm separation-of-concerns responsibility

5
推荐指数
1
解决办法
948
查看次数

与服务层或域对象本身的接口?(DDD)

我仍在学习 DDD,我有以下两个(可能很简单)的问题:

如果工厂创建了新的对象/图形/聚合实例,但也从Repository 中“重构”了对象/图形,则:

(1) 您的服务层功能/作业/任务/工作单元是否调用了工厂或实体实例或域服务功能上的行为方法?我对基于这些组件的职责的调用堆栈感到迷茫。

(2) Entity 实例甚至有像上面那样的“行为方法”吗?例如,Post 是否具有p.UpdatePost(string bodyText)域模型的关注点,因此存储库也应该实现相同的目标?或者服务层功能,在这种情况下它是否应该调用 Repository 而实体实例只是具有特定于域的行为方法而不是持久性?但是,为什么听起来像“更新帖子”是用户的目标时的域功能?

你可以看到我到处都是。请帮忙。

domain-driven-design responsibility

5
推荐指数
1
解决办法
3029
查看次数

指针和面向对象的编程

指针如何与面向对象编程的概念一起使用?

据我了解(并且请注意,我被归类为ID-10T),OOP的主要原则是遏制并保持管理责任(内存/实现/等)包含在类中; 但是当一个对象的方法返回一个指针时,我们似乎正在" 弹出 "该对象.现在,有人可能需要担心:

  1. 难道他们应该删除指针的关联对象?
  2. 但是如果班级仍然需要这个对象呢?
  3. 他们可以改变对象吗?如果是这样,怎么样?(我认识const可能会解决这个问题)
  4. 等等......

这似乎对象的用户现在需要知道多少更多关于类是如何工作的,什么阶级期望用户的.感觉就像是一只"淘汰猫咪"的情景,似乎在面对OOP时是一种打击.

注意:我注意到这是一个与语言无关的问题; 但是,在C++环境中工作时,我被提示提出问题.

c++ oop pointers responsibility

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

.Net类库:线程负责

我正在开发一个类库,其中一个类负责XDocument.Load(url)从互联网上检索一个Xml文件.看到这个操作可能需要几秒钟才能完成,因此在它自己的线程上运行它是有意义的.

谁有责任创建这个帖子?消费者或检索文件的类?有关于此的最佳做法吗?

.net multithreading class-library responsibility

0
推荐指数
1
解决办法
135
查看次数