master #12
|
@ -144,7 +144,7 @@ class InvoicePersistence(abc.ABC):
|
||||||
The new _InvoicePersistence_ class has an abstract method.
|
The new _InvoicePersistence_ class has an abstract method.
|
||||||
So, if a class inherits the _InvoicePersistence_ class, you have to implement the _save_ method.
|
So, if a class inherits the _InvoicePersistence_ class, you have to implement the _save_ method.
|
||||||
|
|
||||||
And for example, we will create a _DataBasePersistence_ class, and this class inherit the abstract _InvoicePersistence_ class.
|
And for example, we will create a _DataBasePersistence_ class, and this class inherits the abstract _InvoicePersistence_ class.
|
||||||
```python
|
```python
|
||||||
class DatabasePersistence(InvoicePersistence):
|
class DatabasePersistence(InvoicePersistence):
|
||||||
def __init__(self, invoice):
|
def __init__(self, invoice):
|
||||||
|
@ -154,7 +154,7 @@ class DatabasePersistence(InvoicePersistence):
|
||||||
def save(self, invoice):
|
def save(self, invoice):
|
||||||
print("Save in database ...")
|
print("Save in database ...")
|
||||||
```
|
```
|
||||||
Let's make the same thing with _FilePersistence_ class.
|
Let's do the same thing with _FilePersistence_ class.
|
||||||
```python
|
```python
|
||||||
class FilePersistence(InvoicePersistence):
|
class FilePersistence(InvoicePersistence):
|
||||||
def __init__(self, invoice):
|
def __init__(self, invoice):
|
||||||
|
@ -164,3 +164,13 @@ class FilePersistence(InvoicePersistence):
|
||||||
def save(self, invoice):
|
def save(self, invoice):
|
||||||
print("Save to file ...")
|
print("Save to file ...")
|
||||||
```
|
```
|
||||||
|
Ok, we do a lot of things, let's make a UML to represent our class structure.
|
||||||
|
|
||||||
|
<center>
|
||||||
|
<img src="./assets/UML_Solid" alt="" width="400"/>
|
||||||
|
</center>
|
||||||
|
|
||||||
|
That will be more simple to do extension.
|
||||||
|
|
||||||
|
### Liskov Substitution Principle
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Loading…
Reference in New Issue