Ich bin ein Neuling, wenn es um Design-Muster kommt, so habe ich eine harte Zeit zu begreifen, das Konzept der Dekorateur Design-Muster. Ist es möglich, eine einfach verknüpfte Listenklasse mit einer doppelt verknüpften Listenklasse zu versehen, die von ihr erbt? Ich möchte die folgende Klasse dekorieren:Verwenden Decorator Design-Muster, um eine doppelt verknüpfte Liste durch Dekorieren einer einfach verknüpften Liste zu erstellen
ListAsSLL.h:
#ifndef LISTASSLL_H
#define LISTASSLL_H
class ListAsSLL
{
protected:
struct node{
int i;
struct node* next;
};
node* head;
node* tail;
int listSize;
public:
ListAsSLL();
virtual void addToBeginning(int obj);
virtual void addAtPos(int obj, int i);
virtual void addToEnd(int obj);
virtual void del(int i);
virtual void overwrite(int obj, int i);
virtual void grow();
virtual void shrink();
};
#endif //LISTASSLL_H
der doppelt verknüpften Liste Klasse die gleiche Funktionalität geben mit dem zusätzlichen Merkmal, eine Struktur mit einem Zeiger auf den vorherigen Knoten aufweist.
Hoffentlich kann jemand etwas Licht darauf werfen, wie man das macht. Danke im Voraus.
Was ist eine Schnittstelle für eine doppelt verkettete Liste, die Sie implementieren müssen? – Slava
@Slava Die exakt gleiche Schnittstelle wie für ListAsSLL – Keagansed
Dann verstehst du nicht, wofür Dekorator Muster verwendet wird. Es wird verwendet, wenn Sie eine Schnittstelle benötigen und eine andere haben. Sie verwenden also einen Dekorator, um die erforderliche Schnittstelle bereitzustellen. Was Sie zu tun versuchen, steht in keiner Beziehung zum Dekorationsmuster. – Slava