I'm new to design patterns, below is my code that let a consumer add journal and save the journal to disk, or upload it to cloud, could you have a check to see if the design is anti-pattern and is there any violations of solid principles
public class Program
{
static void Main(string[] args)
{
Consumer client = new Consumer(new DiskManager("C:\\journal.txt"));
// consumer add text to Journal
client.AddJournal("sometext");
client.SaveJournal();
}
}
public class Journal
{
private readonly List<string> entries = new List<string>();
public void AddEntry(string text)
{
entries.Add(text);
}
public void RemoveEntry(int index)
{
entries.RemoveAt(index);
}
}
public interface IPersistenceManager
{
void Save(Journal journal);
}
public class DiskManager : IPersistenceManager
{
private string filePath;
public DiskManager(string filePath)
{
this.filePath = filePath;
}
public void Save(Journal journal)
{
//XXX.XXX.Save(filePath);
}
}
public class CloudManager : IPersistenceManager
{
private string url;
public CloudManager(string url)
{
this.url = url;
}
public void Save(Journal journal)
{
//XXX.XXX.Save(url);
}
}
public class Consumer
{
private Journal _journal = new Journal();
private IPersistenceManager _manager;
public void AddJournal(string note)
{
_journal.AddEntry(note);
}
public Consumer(IPersistenceManager manager)
{
_manager = manager;
}
public void SaveJournal()
{
_manager.Save(_journal);
}
}
and I have a question well:
Q1-How can I modify the code so the client can also have an option to save the journal to both disk and cloud?
Aucun commentaire:
Enregistrer un commentaire