设计模式

策略模式

定义了算法族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。
1.首先声明改变行为的对象的超类抽象类,以及行为接口
2.在超类中声明行为接口的变量,并定义相关调用方法委托给对象调用。
3.在行为对象类的构造方法中将行为类实例化赋值给行为接口变量
使用此模式就可以在行为对象类中动态地改变自己想要的行为,只需要声明一个行为接口并且在对象超类中声明其变量,再在行为对象类中使用接口的实现类进行赋值即可。

观察者模式

在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。
自制:
1.声明一个主题接口,其中应有注册、删除、通知观察者的方法。声明一个观察者接口,其中应有updata方法。
2.定义一个实现主题接口的可观察者类,在其中进行数据的操作,完毕之后在通知方法通过调用观察者的updata方法传递给观察者。
3.定义一个实现观察者接口的观察者类,在其中重写updata方法,并且在构造器中注册至可观察者。
Java内置:
1.util包中包含Observer接口和Observable类。让可观察者继承Observable类,观察者实现Observer接口。
2.在可观察者类中调用notifyObservers()来通知观察者可以拉取数据。因此可观察者类中还需要包含数据的get方法。
3.在可观察者类中调用notifyObservers(Object arg)来推送数据。

装饰者模式

动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。
1.装饰者与被装饰者都需要继承自同一个抽象类。
2.装饰者同时也需要继承自一个抽象类,这个抽象类继承自被装饰者的抽象类。
3.装饰者的构造方法需要传递被装饰者的超类抽象类,同时存储在声明变量中,这样就可以传递进不同的被装饰者。
4.装饰者与被装饰者都需要重写抽象类的方法来进行操作。

工厂方法模式

定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个,工厂方法让类把实例化推迟到子类。
1.将类的实例化方法定义为抽象方法留给子类实现,此方法返回一个对象实例。
2.具体使用时则子类实例化赋值给超类。

抽象工厂模式

提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体类。
1.首先为工厂定义一个接口,这个接口负责创建所有的对象。
2.定义不同的子工厂来实现这个接口。
3.需要工厂的类在构造器参数中得到一个工厂,并把这个工厂存储在一个超类实例变量中。在接下来的使用中就可以使用超类来调用方法,将做什么和怎么做分离开。
4.使用时在类中实例化子工厂将其赋值给超类,将其作为参数传来实例化3的类实现定制化,即传递进不同的工厂就实例化了不同的类。

命令模式

将请求封装成对象,这可以让你使用不同的请求,队列,或者日志请求来

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值