设计模式之精简实现

1、策略模式
主体主要是添加一个算法的基类,这样就可以通过创建不同的派生类算法,来达到运行时动态改变行为。
优点:主体与算法之间进行解耦,增加算法的可扩展性。
注意:算法不能太依赖于主体的数据,不然,会很麻烦。


2、观察者模式
观察者 关键是要继承统一的监听接口。
通知者 主要是实现:观察者list、添加观察者、删除观察者、通知观察者等接口。
可分为:推送观察者模式,拉取观察者模式。
优点:观察者与通知者之间进行解耦,可以很方便的添加、删除观察者。


3、装饰模式
主要是通过装饰品替换装饰者来改变装饰者的行为。因此,装饰品要与装饰者有相同的接口,添加一个装饰品就返回此装饰品的指针,而此指针中含有一个被装饰者的指针,最终形成一个链表,表头是最后添加的装饰品,表尾是装饰者。
装饰品 包含一个装饰者基类,与装饰者有相同的外部接口。


4、工厂模式
主要是通过创建一个工厂来生产产品,达到解耦用户与产品的生产过程,用户可以通过创建不同的工厂来生产不同的产品。


5、状态模式
主体根据不同的状态,表现出不同的行为。 分析主体拥有的状态及所有状态共有的行为抽象出一个状态基类,把每一种状态及其表现的行为封装成一个状态类,主体拥有所有的状态对象,一个状态基类,以及状态的切换接口。状态类中含有一个主体指针,在执行自己的行为时,根据主体的接口切换状态。
优点:主体与状态的行为进行解耦,在不影响其他状态类的前提下,可以很方便的给主体添加新的状态。


6、单例模式
定义一个私有的构造函数,一个静态的实例化函数,一个静态的指向自己的指针,通过静态实例化函数来动态的创建对象,多次调用时返回已有的对象指针,来达到单例的效果。


7、命令模式
主要是定义命令、命令invoker(调用者)、命令执行者三个对象,命令要有统一的接口,并将命令与命令执行者绑定封装。
执行流程是:客户创建‘命令’并传递给‘命令invoker(调用者)’,‘命令invoker(调用者)’调用‘命令’的统一接口来执行命令。
有点:命令的调用者和执行者进行解耦,在不修改命令调用者的情况下可以很容易的添加新的命令。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值