装饰模式之喜羊羊
时间: 2023-06-29 14:09:46 浏览: 101
喜羊羊是一个非常受欢迎的卡通形象,如果我们要对喜羊羊进行一些装饰,比如给他戴上一顶帽子或者穿上一件衣服,那么可以使用装饰模式。
在装饰模式中,我们可以定义一个抽象的基础类(比如“羊”),然后定义一个装饰器类(比如“帽子”或“衣服”),这个装饰器类也继承自基础类,并且包含一个指向基础类对象的引用。
当我们需要对基础类进行装饰时,我们可以创建一个装饰器对象,并将基础类对象传递给装饰器对象。然后装饰器对象可以在调用基础类方法之前或之后执行一些额外的操作(比如给喜羊羊戴上帽子),从而实现装饰效果。
下面是一个简单的示例代码:
```python
class Sheep:
def say(self):
print("我是一只羊!")
class Decorator:
def __init__(self, component):
self._component = component
def say(self):
self._component.say()
class Hat(Decorator):
def say(self):
super().say()
print("我戴上了帽子!")
class Clothes(Decorator):
def say(self):
super().say()
print("我穿上了衣服!")
# 创建一个基础的羊对象
sheep = Sheep()
# 创建一个带帽子的羊对象
hat_sheep = Hat(sheep)
# 创建一个穿衣服的羊对象
clothes_sheep = Clothes(sheep)
# 分别让这三只羊说话
sheep.say()
hat_sheep.say()
clothes_sheep.say()
```
输出结果为:
```
我是一只羊!
我是一只羊!
我戴上了帽子!
我是一只羊!
我穿上了衣服!
```