From 7ae7dcea6db7932a2b5316b8bd70d522a502c195 Mon Sep 17 00:00:00 2001 From: nemanjarogic Date: Sat, 10 Sep 2022 08:20:59 +0200 Subject: [PATCH] Add fluent interface design pattern --- README.md | 3 +- assets/images/console-menu.png | Bin 59688 -> 60136 bytes .../BlobStorageExample/BlobStorageExecutor.cs | 17 ++++ .../BlobStorageExample/BlobStorageManager.cs | 77 ++++++++++++++++++ .../Contracts/IBlobStorageAction.cs | 9 ++ .../Contracts/IBlobStorageSelector.cs | 6 ++ .../BlobStorageExample/Contracts/IRead.cs | 7 ++ .../BlobStorageExample/Contracts/IWrite.cs | 6 ++ .../FluentInterfaceLibrary/Executor.cs | 16 ++++ .../FluentInterfaceLibrary.csproj | 13 +++ .../LinqExample/LinqExecutor.cs | 65 +++++++++++++++ src/DesignPatternsLibrary.sln | 14 +++- .../DesignPatternsLibrary.csproj | 1 + .../PatternExecutorsRegistry.cs | 1 + 14 files changed, 232 insertions(+), 3 deletions(-) create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/BlobStorageExecutor.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/BlobStorageManager.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageAction.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageSelector.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IRead.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IWrite.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/Executor.cs create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/FluentInterfaceLibrary.csproj create mode 100644 src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/LinqExample/LinqExecutor.cs diff --git a/README.md b/README.md index 9ddbfe5..978ba53 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@

Design Patterns Library

- 32 Design Patterns • 65 moderately realistic examples + 33 Design Patterns • 73 moderately realistic examples

## What are Design Patterns? @@ -57,6 +57,7 @@ This repository contains a comprehensive design patterns library implemented in | Design Pattern | Type | Description | | ------------- |:-------------:| -----| | [Event Aggregator](https://github.com/nemanjarogic/DesignPatternsLibrary/tree/main/src/AdditionalPatterns/EventAggregator/StoreManagement) | Behavioral | Channel events from multiple objects into a single object to simplify registration for clients.| +| [Fluent Interface](https://github.com/nemanjarogic/DesignPatternsLibrary/tree/main/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary) | Creational | Provides an easy-readable, flowing interface, that often mimics a domain specific language. Using this pattern results in code that can be read nearly as human language.| | [Interpreter](https://github.com/nemanjarogic/DesignPatternsLibrary/tree/main/src/AdditionalPatterns/Interpreter/InterpreterLibrary) | Behavioral | Defines a grammatical representation for a language and provides an interpreter to evaluate sentences in a language.| | [Lazy Load](https://github.com/nemanjarogic/DesignPatternsLibrary/tree/main/src/AdditionalPatterns/LazyLoad/LazyLoadLibrary) | Data Access | Defers initialization of an object until the point at which it is needed. It can contribute to efficiency in the program's operation if properly and appropriately used.| | [Null Object](https://github.com/nemanjarogic/DesignPatternsLibrary/tree/main/src/AdditionalPatterns/NullObject/NullObjectLibrary) | Behavioral | Encapsulates the absence of an object by providing a substitutable alternative that offers suitable default do nothing behavior.| diff --git a/assets/images/console-menu.png b/assets/images/console-menu.png index ea310bdb6f3347bb5e4effee986b3184252ee5d4..e32f65c412576a88171434bb351f02f43c6b9e40 100644 GIT binary patch literal 60136 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 literal 59688 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

?#6jO|8Z-d&>d72F|oE* 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 sxdB$_07wuon1QcVuphyX0)gm7KT<") + .OnBlob("container", "blob") + .Download("blobStorageManual.pdf") + .ToFolder(@"D:\DesignPatternsLibrary\Downloads"); + } +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/BlobStorageManager.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/BlobStorageManager.cs new file mode 100644 index 0000000..330e832 --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/BlobStorageManager.cs @@ -0,0 +1,77 @@ +using FluentInterfaceLibrary.BlobStorageExample.Contracts; + +namespace FluentInterfaceLibrary.BlobStorageExample; + +public sealed class BlobStorageManager : IBlobStorageSelector, IBlobStorageAction, IRead, IWrite +{ + private readonly string _connectionString; + private string _containerName; + private string _blobName; + + private BlobStorageManager(string connectionString) + { + _connectionString = connectionString; + _containerName = string.Empty; + _blobName = string.Empty; + } + + #region Blob storage connection + + public static IBlobStorageSelector Connect(string connectionString) + { + Console.WriteLine($"Connecting to the storage account using the connection string: {connectionString}"); + var connection = new BlobStorageManager(connectionString); + Console.WriteLine("Connection with the storage account is successfully established."); + + return connection; + } + + public IBlobStorageAction OnBlob(string containerName, string blobName) + { + _containerName = containerName; + _blobName = blobName; + + Console.WriteLine($"The blob storage /{containerName}/{blobName} is ready for incoming requests."); + return this; + } + + #endregion Blob storage connection + + #region Download + + public IWrite Download(string fileName) + { + Console.WriteLine($"The file {fileName} will be download from the /{_containerName}/{_blobName}"); + return this; + } + + public void ToFolder(string folderPath) => + Console.WriteLine($"The file is downloaded from the /{_containerName}/{_blobName} to the directory {folderPath}."); + + #endregion Download + + #region Upload + + public IRead Upload(string fileName) + { + Console.WriteLine($"The file {fileName} will be uploaded to the /{_containerName}/{_blobName}"); + return this; + } + + public void FromFile(string filePath) => + Console.WriteLine($"The file is uploaded from the user's machine to the /{_containerName}/{_blobName}."); + + public void FromStream(Stream stream) => + Console.WriteLine($"The file is uploaded from the stream to the /{_containerName}/{_blobName}."); + + #endregion Upload + + #region Preview + + public void Preview(string fileName) + { + Console.WriteLine($"Previewing the file {fileName} from the /{_containerName}/{_blobName}..."); + } + + #endregion Preview +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageAction.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageAction.cs new file mode 100644 index 0000000..f93b64a --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageAction.cs @@ -0,0 +1,9 @@ +namespace FluentInterfaceLibrary.BlobStorageExample.Contracts; + +// Interfaces IWrite and IRead are used as a prevention mechanism for invalid method combinations. +public interface IBlobStorageAction +{ + IWrite Download(string fileName); + IRead Upload(string fileName); + void Preview(string fileName); +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageSelector.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageSelector.cs new file mode 100644 index 0000000..f791177 --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IBlobStorageSelector.cs @@ -0,0 +1,6 @@ +namespace FluentInterfaceLibrary.BlobStorageExample.Contracts; + +public interface IBlobStorageSelector +{ + IBlobStorageAction OnBlob(string containerName, string blobName); +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IRead.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IRead.cs new file mode 100644 index 0000000..4b2b3cc --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IRead.cs @@ -0,0 +1,7 @@ +namespace FluentInterfaceLibrary.BlobStorageExample.Contracts; + +public interface IRead +{ + void FromFile(string filePath); + void FromStream(Stream stream); +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IWrite.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IWrite.cs new file mode 100644 index 0000000..89ff2d5 --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/BlobStorageExample/Contracts/IWrite.cs @@ -0,0 +1,6 @@ +namespace FluentInterfaceLibrary.BlobStorageExample.Contracts; + +public interface IWrite +{ + void ToFolder(string folderPath); +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/Executor.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/Executor.cs new file mode 100644 index 0000000..c941d3a --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/Executor.cs @@ -0,0 +1,16 @@ +using BuildingBlocks; +using FluentInterfaceLibrary.BlobStorageExample; +using FluentInterfaceLibrary.LinqExample; + +namespace FluentInterfaceLibrary; + +public class Executor : PatternExecutor +{ + public override string Name => "Fluent Interface - Creational Pattern"; + + public override void Execute() + { + BlobStorageExecutor.Execute(); + LinqExecutor.Execute(); + } +} \ No newline at end of file diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/FluentInterfaceLibrary.csproj b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/FluentInterfaceLibrary.csproj new file mode 100644 index 0000000..f37fea2 --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/FluentInterfaceLibrary.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/LinqExample/LinqExecutor.cs b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/LinqExample/LinqExecutor.cs new file mode 100644 index 0000000..114b0ca --- /dev/null +++ b/src/AdditionalPatterns/FluentInterface/FluentInterfaceLibrary/LinqExample/LinqExecutor.cs @@ -0,0 +1,65 @@ +using BuildingBlocks; + +namespace FluentInterfaceLibrary.LinqExample; + +public static class LinqExecutor +{ + public static void Execute() + { + ConsoleExtension.WriteSeparator("LINQ example"); + + var englishToSerbianDictionary = new Dictionary + { + {"adventure", "avantura"}, + {"bird", "ptica"}, + {"fish", "riba"}, + {"football", "fudbal"}, + {"programming", "programiranje"}, + }; + + DisplayDictionary(englishToSerbianDictionary); + + Console.WriteLine("\nFinding translations for English words containing the letter 'a', sorted by length and displayed in uppercase..."); + FindTranslationsProgressively(englishToSerbianDictionary); + FindTranslationsUsingFluentInterface(englishToSerbianDictionary); + } + + private static void DisplayDictionary(Dictionary englishToSerbianDictionary) + { + Console.WriteLine("\nContent of the dictionary: "); + foreach (var (englishWord, serbianWord) in englishToSerbianDictionary) + { + Console.WriteLine($"{englishWord} - {serbianWord}"); + } + } + + private static void FindTranslationsProgressively(Dictionary englishToSerbianDictionary) + { + var filtered = englishToSerbianDictionary.Where(t => t.Key.Contains("a")); + var sorted = filtered.OrderBy(t => t.Value.Length); + var finalTranslations = sorted.Select(t => t.Value.ToUpper()); + + Console.WriteLine("\nProgressive translations: "); + DisplayWords(finalTranslations); + } + + private static void FindTranslationsUsingFluentInterface(Dictionary englishToSerbianDictionary) + { + // C# uses fluent programming extensively in LINQ to build queries using "standard query operators". + var finalTranslations = englishToSerbianDictionary + .Where(t => t.Key.Contains("a")) + .OrderBy(t => t.Value.Length) + .Select(t => t.Value.ToUpper()); + + Console.WriteLine("\nFluent interface translations: "); + DisplayWords(finalTranslations); + } + + private static void DisplayWords(IEnumerable words) + { + foreach (var word in words) + { + Console.WriteLine(word); + } + } +} \ No newline at end of file diff --git a/src/DesignPatternsLibrary.sln b/src/DesignPatternsLibrary.sln index 3550df4..1e15a2c 100644 --- a/src/DesignPatternsLibrary.sln +++ b/src/DesignPatternsLibrary.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30711.63 +# Visual Studio Version 17 +VisualStudioVersion = 17.2.32616.157 MinimumVisualStudioVersion = 10.0.40219.1 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesignPatternsLibrary", "DesignPatternsLibrary\DesignPatternsLibrary.csproj", "{60C3B7E4-E290-47F4-A3C0-4F9505DE926F}" EndProject @@ -141,6 +141,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Specification", "Specificat EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProductSpecification", "AdditionalPatterns\Specification\ProductSpecification\ProductSpecification.csproj", "{82AC53EE-D473-4826-9443-133BED0C830C}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FluentInterface", "FluentInterface", "{6CBEFB1A-4A1D-4F1E-8878-C6AE19444596}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FluentInterfaceLibrary", "AdditionalPatterns\FluentInterface\FluentInterfaceLibrary\FluentInterfaceLibrary.csproj", "{97D64ED5-9F0A-437A-A96C-D338D0CAE390}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -283,6 +287,10 @@ Global {82AC53EE-D473-4826-9443-133BED0C830C}.Debug|Any CPU.Build.0 = Debug|Any CPU {82AC53EE-D473-4826-9443-133BED0C830C}.Release|Any CPU.ActiveCfg = Release|Any CPU {82AC53EE-D473-4826-9443-133BED0C830C}.Release|Any CPU.Build.0 = Release|Any CPU + {97D64ED5-9F0A-437A-A96C-D338D0CAE390}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97D64ED5-9F0A-437A-A96C-D338D0CAE390}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97D64ED5-9F0A-437A-A96C-D338D0CAE390}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97D64ED5-9F0A-437A-A96C-D338D0CAE390}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -351,6 +359,8 @@ Global {BBDF24BC-7D73-4A8F-B8B0-C649019E1B80} = {C8512694-34BF-4616-A82F-12D73DE8263A} {F1704AAE-3951-43C1-85EC-16C4C52133F3} = {15B15698-CB27-4F30-884C-25C2C1D50202} {82AC53EE-D473-4826-9443-133BED0C830C} = {F1704AAE-3951-43C1-85EC-16C4C52133F3} + {6CBEFB1A-4A1D-4F1E-8878-C6AE19444596} = {15B15698-CB27-4F30-884C-25C2C1D50202} + {97D64ED5-9F0A-437A-A96C-D338D0CAE390} = {6CBEFB1A-4A1D-4F1E-8878-C6AE19444596} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {F9238CD9-9068-4B63-8D9E-53684BA60A21} diff --git a/src/DesignPatternsLibrary/DesignPatternsLibrary.csproj b/src/DesignPatternsLibrary/DesignPatternsLibrary.csproj index e0431e7..3dade54 100644 --- a/src/DesignPatternsLibrary/DesignPatternsLibrary.csproj +++ b/src/DesignPatternsLibrary/DesignPatternsLibrary.csproj @@ -9,6 +9,7 @@ + diff --git a/src/DesignPatternsLibrary/PatternExecutorsRegistry.cs b/src/DesignPatternsLibrary/PatternExecutorsRegistry.cs index f941cb6..bd0bad2 100644 --- a/src/DesignPatternsLibrary/PatternExecutorsRegistry.cs +++ b/src/DesignPatternsLibrary/PatternExecutorsRegistry.cs @@ -23,6 +23,7 @@ private PatternExecutorsRegistry() new CompositeLibrary.Executor(), new DecoratorLibrary.Executor(), new FacadeLibrary.Executor(), + new FluentInterfaceLibrary.Executor(), new FlyweightLibrary.Executor(), new ProxyLibrary.Executor(), new ChainOfResponsibilityLibrary.Executor(),