我与一个小的阶层一起工作,像以下那样,我要说,在我悲伤的无助世界中,没有任何其他种类的动物(我不担心能否恢复扩大):
public abstract class Animal {};
public sealed class Dog : Animal {};
public sealed class Cat : Animal {};
public sealed class Turtle : Animal {};
public sealed class Bird : Animal {};
我只想像APIC那样对待所有动物,但很明显,在以下情况下,这些动物的反应很少不同:
public class AnimalCare {
public void Feed<T> (T pet) where T: Animal;
public T PickUp<T> (PetStore store);
}
首先,在不给动物类以饲料方法的情况下,模糊了喂养的想法(动物,我知道这个例子正在达到这一目的,但为了证明动物动物体是我的动物体体,而Imtty adamant是担心分离的)会暗示一名游客。 但是,我真的想要做的是,让以上是动物饲养业唯一需要担心的亚特兰大消费者,而我做的是以下事情:
public class AnimalCare {
public void Feed<T> (T pet) where T : Animal;
public T PickUp<T> (PetStore store);
public void Feed<Dog> (Dog rover)
{
// dump out alpo, lift toilet seat
}
public void Feed<Turtle> (Turtle franklin)
{
// do turtles eat? let him figure it out himself.
} // ...etc.
public Dog PickUp<Dog> (PetStore store)
{
// get bone, tennis ball, leash
}
public Bird PickUp<Bird> (PetStore store)
{
// make sure not dead, nailed to perch
} // ...etc.
}
因此。 我知道,第一部分(Fed(Fed)方法)在不需要一般用途的情况下对超负荷工作进行罚款,但是,这仍然给我留下了为PickUp(因为正如我上文所列举的那样,执行法律并不合法)而实行的宽松措施,例如PickUpDog/PickUpBird等。 我非常希望避免对动物中心消费者及其志同道合的朋友单独提出“观点”,以便他们必须关心。
我在玩弄专门班子和其他假肢,试图组成或交替,但我似乎无法正确,我 st。 是否有像我所希望的那样做些什么的干净方法,或者我是否辞职为每个具体动物执行动物保护区?
http://www.ohchr.org。
Joel谈到工厂/储藏点,我认为还有一点。 更合理的做法是:
public class AnimalPresentation {
public void Show (Dog dog);
public void Show (Cat cat);
//..etc.
public Animal Get (PetStore store);
}
这首先会让我相信。 在“Get”时已知的“PetStore”下游动物类型,但在“Get”的一般实施中,一旦确定这种类型,它就分到特定超负荷。 佩特施店的具体子类是在这里的最佳/唯一方式吗?