Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.IO;
- namespace ComposableDecorators
- {
- public class Program
- {
- static void Main(string[] args)
- {
- //how to use
- Csv finalCsv = new CsvMassaged(
- new CsvDeduped(
- new CsvText("file location")
- )
- );
- }
- }
- public interface Csv
- {
- string Read();
- }
- public class CsvText : Csv
- {
- private readonly string _file;
- public CsvText(string file)
- {
- _file = file;
- }
- public string Read()
- {
- return File.ReadAllBytes(_file).ToString();
- }
- }
- public class CsvDeduped : Csv
- {
- private readonly Csv _origin;
- public CsvDeduped(Csv csv)
- {
- _origin = csv;
- }
- public string Read()
- {
- return Dedupe(_origin.Read());
- }
- private string Dedupe(string originText)
- {
- //deduplication logic
- return originText;
- }
- }
- public class CsvMassaged : Csv
- {
- private readonly Csv _origin;
- public CsvMassaged(Csv csv)
- {
- _origin = csv;
- }
- public string Read()
- {
- return Massage(_origin.Read());
- }
- private string Massage(string originText)
- {
- //massage logic
- return originText;
- }
- }
- }
Add Comment
Please, Sign In to add comment