设计模式的来源与日常生活息息相关,以下是几个例子:
- 迭代器模式:类比我们在超市购物时使用购物车,通过迭代器遍历购物车中的商品。
- 观察者模式:类比天气预报应用程序,当气象数据更新时,观察者可以接收并更新界面上的数据。
- 单例模式:类比公司CEO,整个公司只有一个CEO,所有员工必须通过CEO来完成公司的任务与业务。
- 工厂模式:类比餐馆点餐,我们不需要亲自去厨房做饭,而是由厨师根据我们的需求来制作菜品。
- 适配器模式:类比充电适配器,我们可以使用适配器将不同种类的充电插头转换成我们的设备所需的插头类型。
这些例子都展示了设计模式如何融入到日常生活中,并且演示了它们如何简化问题,提高效率,同时也说明了为什么设计模式在软件开发中如此重要。
1、装饰器、适配器、代理模式本质区别
装饰器模式、代理模式和适配器模式都是面向对象中的结构型设计模式,所以它们非常的相似。比如装饰器能实现日志记录,代理模式也能实现日志记录。但它们之间仍然存在一些区别。
1、装饰器模式的本质是添加
装饰器模式用于动态地给对象添加新的职责和行为,但不改变原始对象的接口。装饰器模式通常会通过创建一个与原始对象具有相同接口的装饰器类来实现功能扩展。
2、代理模式的本质是控制
代理模式用于控制对另一个对象的访问。代理模式通常会在客户端和实际对象之间添加一个代理对象,代理可以在客户端和实际对象之间进行一些额外的处理,例如安全检查、缓存等。
3、适配器模式的本质是转换
适配器模式用于将一个类的接口转换成另一个类的接口,以便于这两个类能够协同工作。适配器模式通常会创建一个适配器类,该适配器类实现了目标接口,并将调用适配者类的接口方法,从而实现了目标接口和适配者接口之间的转换。
-----------------------------------------------------------------
小结:
其实起初学习会发现它们还是有区别的,但越研究就越会发现它们很像。感觉到后面只能回归到字面意思来区分它们。
装饰器:在原房子上添加装饰
代理:控制租房与房东的访问,通过代理来完成
适配器:三角插头转换成两角插头
2、几种工厂模式本质区别
如何区分简单工厂、工厂方法、抽象工厂的区别呢?可以从工厂类针对的产品种类数、产品数、工厂类个数来区分。
- 简单工厂:针对一类产品(手机类),产品数量有多个(小米手机、华为手机、苹果手机),一个工厂类负责生产。
- 工厂方法:针对一类产品(手机类),产品数量有多个(小米手机、华为手机、苹果手机),多个工厂类负责生产(小米手机工厂类、华为手机工厂类)。
- 抽象工厂:针对一类产品(手机类、笔记本类),产品数量有多个(小米手机、华为手机、苹果手机、小米笔记本、华为笔记本...),多个工厂类负责生产。
================================================
如果文章对你有帮助,不要忘记加个关注、点个赞!必回关!!!