创建型设计模式

本文介绍了设计模式中的模板方法、观察者和策略模式。模板方法通过固定算法骨架约束子类行为,观察者模式实现了一对多的依赖关系,使得对象在状态变化时能自动更新。策略模式则封装了一系列可互换的算法,允许在运行时选择具体实现。学习设计模式,有助于提高代码的灵活性和可维护性。
摘要由CSDN通过智能技术生成

概述:设计模式是指在软件开发中,经过验证的,用于解决在特定环境下,重复出现的,特定问题的解决方案。

一、怎么学习设计模式?

        1.找稳定点和变化点,把变化点隔离出来

                一个整洁的房间,有一只好动的猫,如何保证房间的整洁?

                解耦合!解耦合不是消灭耦合,而是把耦合控制在一定的范围内

        2.设计原则,先满足设计原则,慢慢迭代出设计模式

                1)依赖倒置原则

                        高层模块不应该依赖低层模块,两者都应该依赖抽象

                        抽象不应该依赖具体实现,具体实现应该依赖于抽象

                2)开放封闭

                        一个类应该对扩展(组合和继承)开放,对修改关闭 

                3)面向接口

                        不将变量类型声明为某个特定的具体类,而是声明为某个接口

                        客户程序无需获知对象的具体类型,只需要直到对象所具有的接口

                        减少系统中各部分的依赖关系,从而实现"高内聚、松耦合"的类型设计方案

                4)封装变化点

                        将稳定点和变化点分离,扩展修改变化点;让稳定点和变化点的实现层次分离

                5)单一职责

                        一个类应该仅有一个引起它变化的原因

                6)里氏替换

                        子类型必须能够替换掉它的父类型;主要出现在子类覆盖父类实现,原来使用父类                   型的程序可能出现错误;覆盖了父类方法却没有实现父类方法的职责;

                7)接口隔离

                        不应该强迫客户依赖于它们不用的方法

                        一般用于处理一个类拥有比较多的接口,而这些接口涉及到很多职责

                8)组合优于继承

                        继承耦合度高,组合耦合度低

二、模板方法

        1.定义

                定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,Template Method使得子            类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。——《设计模式》GoF

        2.背景

                某个品牌动物园,有一套固定的表演流程,但是其中有若干个表演子流程可创新替换,           以尝试迭代更新表演流程。

        3.要点

                最常用的设计模式,子类可以复写父类子流程,使父类的骨架流程丰富;

                反向控制流程的典型应用;

                父类protected保护子类需要复写的子流程,这样子类的子流程只能父类来调用;

        4.本质

                通过固定算法骨架来约束子类的行为;

三、观察者模式

        1.定义

                定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生          改变时,所有依赖于它的对象都得到了通知并自动更新。——《设计模式》GoF

        2.背景

                气象站发布气象资料给数据中心,数据中心经过处理,将气象信息更新到两个不同的的           显示终端(A和B)。

        3.要点

                观察者模式使得我们可以独立地改变目标与观察者,从而使二者之间的关系松耦合;

                观察者自己决定是否订阅通知,目标对象并不关注谁订阅了;

                观察者不要依赖通知顺序,目标对象也不直到通知顺序;

                常用在基于事件的ui框架中,也是MVC的组成部分;

                常用在分布式系统中,actor框架中;

        4.本质

                触发联动;

四、策略模式

        1.定义

                定义一系列算法,把它们一个个封装起来,并且使得它们可相互替换。该模式使得算法          可独立于使用它的客户程序而变化。——《设计模式》GoF

        2.背景

                某商场节假日有固定促销活动,为加大促销力度,现提升国庆节促销活动规格;

        3.要点

                策略模式提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各          个算法之间进行切换;

                策略模式消除了条件判断语句;也就是解耦合;

        4.本质

                分离算法,选择实现;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值