我在StackOverflow和其他地方談論過很多具體實現。雖然與WCF擺弄我通過線什麼是具體實現?
搭售服務實現,或 任何「基於服務」類的 具體的實現絕不是 好主意來了。
任何人都可以解釋具體實現是什麼?
我在StackOverflow和其他地方談論過很多具體實現。雖然與WCF擺弄我通過線什麼是具體實現?
搭售服務實現,或 任何「基於服務」類的 具體的實現絕不是 好主意來了。
任何人都可以解釋具體實現是什麼?
它是抽象類(抽象類,接口)的實現。 請注意,您只能實例化具體類的對象。
只是舉例來說,如果你有:
abstract class AbstractClass
{
.......
// Here you have some abstract methods
}
class ConcreteClass : AbstractClass
{
.......
}
在WCF的情況下,它想說的是,雖然它被允許使用的ServiceContract標記類屬性最好是有它獨立的接口和實施具體該接口類標有ServiceBehavior屬性。
像這樣:
[ServiceContract(Namespace = "MyNamespaceName")]
interface IMyInterface
{
[OperationContract]
int SomeMethod(.....);
......
......
}
[ServiceBehavior(......)]
public class SomethingConcrete : IMyInterface
{
// implementation of SomeMethod
}
如果你有一個接口或抽象類,它需要實現。
實現這種接口或類的類稱爲具體實現(因爲只有這樣的實現類可以實例化)。
上述原則意味着您不應該直接對具體實現進行編碼,因爲您可能希望在以後更換另一個具體實現而不更改代碼。這意味着你應該使用接口和抽象類的引用,而不是具體的實現。
在術語 「具體實施」, 「混凝土」 字是多餘的。一個實現總是具體的,沒有抽象的實現。所以,重要的是「實施」這個詞。
在這種情況下,它意味着你應該對抽象進行編碼,而不是直接對實現進行編碼,即爲類定義接口,並使用接口而不是類。這樣,只要他們實現了接口,就可以用一種實現替代另一種實現。
我終於明白,從頭第一個「設計模式」書。
非常簡單的解釋。
想象有接口或稱爲動物用makeSound()方法抽象類。
想象也有狗類樹皮()和makeSound()方法。
編程來實現(具體實現)狗類動物會
Dog d = new Dog();
d.bark();
面向接口編程/超狗類動物會
Animal animal = new Dog();
animal.makeSound();
我會建議讀鮑勃叔叔的文章在固體原則上:http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod我認爲它會幫助你理解什麼編碼具體實現意味着什麼,爲什麼它是一個壞主意。 – 2010-06-23 11:28:47