设计模式其实是提供解决问题的一种思路,而且很抽象,所以一直想用一种形象的思维来理解它。
装饰模式,官方的解释在此不说。它的核心四个角色:抽象构件角色,具体构件角色,抽象装饰角色,具体装饰角色。可以作以下理解:
有一个人要出门,需要搭配衣服,包括上衣,裤子等,这个需求出现,应该怎么分解这个功能需求。
1.抽象构件:有一个人物,不知是谁
2.具体抽象构件:这个人可能是张三,可能是李四
3.抽象装饰:只针对这个人,帮他建立了一个装饰格
4.具体装饰:上衣,裤子
Screenshot from 2018-09-28 15:50:26.png
a. 装饰模式的核心,就是那个装饰格,它建立了装饰和人物的关联,例如只要把上衣往装饰格一扔,人物就会穿上。
b. 同时,上衣或裤子只对装饰格负责,而张三或李四也只对人物负责。实现了具体装饰品和具体人物的解耦。
c. 装饰品不必知道谁要用它,张三也不必先和某件上衣产生关联。
d. 这样理解后,再去理解装饰格是如何和人物发生关联。
所以,装饰模式不是用来处理一个人的穿着(个人现有衣服,可能10件)问题,而是用来处理一千个人的穿着(千人现有衣服,可能10000件)问题的思维模式。
网友评论