2017-06-07 29 views
-5

鑑於以下操作使用某些設計模式嗎?

class ClassA 
{ 
    void MethodA(ClassB ObjB) {...} 
} 

執行以下操作使用一些設計模式:

class ClassC: ClassB 
{ 
    void MethodC(ClassA ObjA) {ObjA.MethodA(this);} 
} 

class ClassD 
{ 
    ClassB _objB; 
    void MethodC(ClassA ObjA) {ObjA.MethodA(this._objB);} 
} 

例如

Class MyData 
{ 
    int data; 
    void Write(BinaryWriter writer){writer.Write(data);}; 
} 

感謝。

+0

提取你爲什麼要問,請給一些背景,或只是增加你的觀點的問題。 – loneshark99

+0

這段代碼是否有任何接縫是完全多餘的?我認爲你可以將它命名爲任何你想要的東西,只要你對這個有用的東西做個好的例子 –

+0

你能提供一個[mcve]嗎? – Enigmativity

回答

0

它看起來像Visitor設計模式的輕型版本:enter image description here

using System; 
    using System.Text; 

    interface IExpressionVisitor 
    { 
    void Visit(Literal literal); 
    void Visit(Addition addition); 
    } 

    interface IExpression 
    { 
    void Accept(IExpressionVisitor visitor); 
    } 

    class Literal : IExpression 
    { 
    internal double Value { get; set; } 

    public Literal(double value) 
    { 
     this.Value = value; 
    } 
    public void Accept(IExpressionVisitor visitor) 
    { 
     visitor.Visit(this); 
    } 
    } 

https://en.wikipedia.org/wiki/Visitor_pattern

+0

謝謝。訪客模式如何? – Tim

+0

如果看看Accept方法,它看起來像MethodA –

相關問題