diff --git a/src/SUMMARY.md b/src/SUMMARY.md index f4b6e6d..af2c879 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -64,4 +64,12 @@ - [Chain of Responsibility](./patterns/behavioral/chain-of-responsibility.md) - [Iterator](./patterns/behavioral/iterator.md) - [Mediator](./patterns/behavioral/mediator.md) - - [Visitor](./patterns/behavioral/visitor.md) \ No newline at end of file + - [Visitor](./patterns/behavioral/visitor.md) + - [Structural](./patterns/structural/intro.md) + - [Adapter](./patterns/structural/adapter.md) + - [Bridge](./patterns/structural/bridge.md) + - [Composite](./patterns/structural/composite.md) + - [Decorator](./patterns/structural/decorator.md) + - [Facade](./patterns/structural/facade.md) + - [Flyweight](./patterns/structural/flyweight.md) + - [Proxy](./patterns/structural/proxy.md) \ No newline at end of file diff --git a/src/patterns/intro.md b/src/patterns/intro.md index 674bf47..0d23b03 100644 --- a/src/patterns/intro.md +++ b/src/patterns/intro.md @@ -6,6 +6,7 @@ Patterns help to have reusable solutions to common problems that occur in softwa 1- [Creational Patterns](./creational/intro.md): Deal with object creation mechanisms, trying to create objects in a manner suitable to the situation. -2- Structural Patterns: Deal with object composition or the structure of classes and objects. +2- [Behavioral Patterns](./behavioral/intro.md): Deal with object collaboration and the delegation of responsibilities. + +3- [Structural Patterns](./structural/intro.md): Deal with object composition or the structure of classes and objects. -3- [Behavioral Patterns](./behavioral/intro.md): Deal with object collaboration and the delegation of responsibilities. \ No newline at end of file diff --git a/src/patterns/structural/adapter.md b/src/patterns/structural/adapter.md new file mode 100644 index 0000000..24d436e --- /dev/null +++ b/src/patterns/structural/adapter.md @@ -0,0 +1 @@ +# Adapter diff --git a/src/patterns/structural/bridge.md b/src/patterns/structural/bridge.md new file mode 100644 index 0000000..7b09918 --- /dev/null +++ b/src/patterns/structural/bridge.md @@ -0,0 +1 @@ +# Bridge diff --git a/src/patterns/structural/composite.md b/src/patterns/structural/composite.md new file mode 100644 index 0000000..49f6dc6 --- /dev/null +++ b/src/patterns/structural/composite.md @@ -0,0 +1 @@ +# Composite diff --git a/src/patterns/structural/decorator.md b/src/patterns/structural/decorator.md new file mode 100644 index 0000000..044f3fc --- /dev/null +++ b/src/patterns/structural/decorator.md @@ -0,0 +1 @@ +# Decorator diff --git a/src/patterns/structural/facade.md b/src/patterns/structural/facade.md new file mode 100644 index 0000000..eef1b8e --- /dev/null +++ b/src/patterns/structural/facade.md @@ -0,0 +1 @@ +# Facade diff --git a/src/patterns/structural/flyweight.md b/src/patterns/structural/flyweight.md new file mode 100644 index 0000000..545de89 --- /dev/null +++ b/src/patterns/structural/flyweight.md @@ -0,0 +1 @@ +# Flyweight diff --git a/src/patterns/structural/intro.md b/src/patterns/structural/intro.md new file mode 100644 index 0000000..2d833c8 --- /dev/null +++ b/src/patterns/structural/intro.md @@ -0,0 +1,19 @@ +### Structural Patterns + +Structural Patterns deal with object composition, trying to realize new functionality by composing objects in various ways. + +### Some Common Structural Design Patterns + +1- [Adapter](./adapter.md): Allows objects with incompatible interfaces to work together by wrapping their own interface around that of an already existing class. + +2- [Bridge](./bridge.md): Decouples an abstraction from its implementation so that the two can vary independently. + +3- [Composite](./composite.md): Composes objects into tree structures to represent part-whole hierarchies, allowing clients to treat individual objects and compositions uniformly. + +4- [Decorator](./decorator.md): Adds additional responsibilities to an object dynamically, providing a flexible alternative to subclassing for extending functionality. + +5- [Facade](./facade.md): Provides a simplified interface to a complex subsystem, making it easier to use. + +6- [Flyweight](./flyweight.md): Reduces the cost of creating and manipulating a large number of similar objects by sharing as much data as possible. + +7- [Proxy](./proxy.md): Provides a surrogate or placeholder for another object to control access to it. \ No newline at end of file diff --git a/src/patterns/structural/proxy.md b/src/patterns/structural/proxy.md new file mode 100644 index 0000000..3a0b7c2 --- /dev/null +++ b/src/patterns/structural/proxy.md @@ -0,0 +1 @@ +# Proxy