我之前對裝飾器模式的理解是,您繼承了Window和WindowDecorator,然後在重寫的方法中,在調用Window的所述方法的實現之前做一些額外的工作。以下類似: public class Window
{
public virtual void Open()
{
// Open the window
}
}
public class Loc
首先,我知道旁邊沒有關於語言的理論,我幾乎不知道除了Java的其他任何語言,但我有一個想法,我認爲將是很酷,但我需要你們告訴我: 一:爲什麼它吮吸 b:語言X是如何了,多年來 C:我的心裏是怎麼吸 d:以上所有 的想法會給組成一樣簡單的代碼重用extends做的。 所以,如果你有這樣一個類:
public interface A {
public void methodInA();
讓說我有一個這樣的類: public sealed class Foo
{
public void Bar
{
// Do Bar Stuff
}
}
而且我希望把它擴大到添加的東西超出了一個擴展方法可以做....我唯一的選擇是組成: public class SuperFoo
{
private Foo _internalFoo;
我這個昨天寫在一類Foo從酒吧繼承: public override void AddItem(double a, int b)
{
//Code smell?
throw new NotImplementedException("This method not usable for Foo items");
}
納悶隨後,如果這是一個可能的跡象,我應該使用一個Bar,
我試圖讓下面的工作,但我不知所措...... class Foo {
public $somethingelse;
function __construct() {
echo 'I am Foo';
}
function composition() {
$this->somethingelse =& new SomethingEls