我有一个接口: IBook和IMovie。IBook是由类IMovie实现的,该类具有IMovie的对象。IMovie由两个类实现: Movie1、Movie2
public class Book: IBook
{
private IMovie _movie;
public Book(IMovie movie) _movie = movie
}
在每一种情况下,我都希望将Movie1实现注入IBook,除了一种情况。在一个具有Book对象的类中,我想将Movie2注入到Book中。是否可以具体说明这种情况?或者我不应该在这种情况下使用DI并手动创建对象?
我正在为两个不同的子类定义一个接口。每个类都实现了继承方法,但是每个类都需要不同的参数才能工作。
这是界面。
public interface Billable()
{
decimal Bill();
}
这是头等舱
public class HourlyEmployee : Billable
{
public decimal Bill(int hoursWorked, decimal pricePerHour) { }
}
这是第二个
public class CommissionEmployee : Billable
{
public decimal Bill(decim
我的代码是这样的:
public T ReadState<T>(string file_path)
{
string file_content = ...read file..from file_path...
T state = ...xml deserialize...
state.SetSomething(); // <--the problem is here <--
return state;
}
我想在各种对象类型上使用这个泛型方法。当然,他们都实现了SetSomething() 方法。
当前,编译器抱怨:
我的界面上有这样的签名:
Public Interface IOrphans
Function getOrphans() As List(Of Integer)
End Interface
这个接口由三个类实现。我想介绍一个新类,但是接口需要有一个接口,如下所示:
Public Interface IOrphans
Function getOrphans(ByVal strDataset As String) As List(Of Integer)
End Interface
我是创建一个名为IDatasetOrphans的新接口,还是创建一个可选参数。
在一次代码评审中,我向我的同事建议,他的其中一种方法有可疑的参数。特别是,参数揭示了太多关于方法的实现细节。我的同事认为,一个方法的输入必须显示该方法的实现细节,那么,在哪里划定界限呢?我能看出他在说什么,但我很难把“输入”和“实现细节”区分开来。
人为的例子(他认为所有这些都是可以的):
int Math.abs(int someNumber);//确定给我
int Math.abs(Integer someNumber);//我有点感兴趣
int Math.abs(int someNumber,SignedHelper signedHelper);// SignedHelper是一个类,它
我在玩领域驱动的开发。我使用的是一个通用存储库实现,定义如下:(这是作为Repository<T>实现的)
public interface IRepository<T> where T : class, IEventSource, new()
{
T FindByKey(Guid key);
IEnumerable<T> FindByQuery(Predicate<T> filter);
IEnumerable<T> GetAll();
T CreateO
可能重复:
如果我们需要实现两个接口,这两个接口都包含一个具有相同名称和参数但返回类型不同的方法,我们该怎么办?例如:
interface A {
public int foo();
}
interface B {
public double foo();
}
class C implements A, B {
public int foo() {...} // compilation error
}
有没有简单的方法来解决这个问题?
如果我创建一个新的Java类,如下所示:
class A
{
public void run() {
// do something
}
}
然后我这样做:
new Thread(new A()).start()
然后我希望它运行run()方法。但事实并非如此。
为什么我们不能将任何带有run方法的对象作为参数传递给new Thread()呢?
为什么java不能允许任何带有run()方法的类运行?让java以这种方式实现线程会有问题吗?
因此,我不确定标题中的术语是否正确,但我应该能够描述我正在尝试做的事情。
我有一个"GenericRepository“类,我所有的实际Repository类都继承自这个类,并且它包含几个泛型方法。该类的代码如下
public class GenericRepository<TEntity> where TEntity : class
{
internal ReportsDirectoryEntities context;
internal DbSet<TEntity> dbSet;
public GenericRepository(R
好的,我正在看一些代码,大致看起来像这样:
void DoSomething(object o)
{
if (o is Sometype1) {
//cast o to Sometype and do something to it
}
else if (o is Sometype2) {
//cast o to Sometype2 and do something to it
}
...
else if (o is SometypeN) {
//cast o to SometypeN and do something
我有以下场景,其中我有不同种类的销售算法来计算销售价格。FixedSaleStrategy不需要basePrice参数,而所有其他策略实现都需要它。有没有好的方法来避免这个多余的参数?
public abstract class SalesStrategy
{
public abstract double GetPrice(double basePrice, double saleAmount);
}
public class AmountOffSale : SalesStrategy
{
public override double GetPrice(double baseP
我有以下接口(在Java中,但它更像是一个OO问题,而不是特定于语言的,我对任何语言的答案都感兴趣)
public interface A {
int foo();
}
和
public interface B {
char foo();
}
如果我现在想上下面的课:
public class C implements A,B{
public int foo() {
return 0;
}
public char foo() {
return 0;
}
}
这不会编译,因为方法是相互冲突的。有没有办法使这个作品,或