设计模式简述(1)

抽象文档模式

声明一个抽象文档类,通过继承document类,将属性声明成一个Map类型,重写对象的get和put方法,这样做的好处是可以随时添加属性,然后再声明接口,接口类继承文档类,声明一个获取属性的方法,这样具体类可以继承抽象文档类,实现属性接口,可以拼装一个具体的类,且不需要任何额外代码,适用于多个相似对象,但有几个属性不同。

具体代码参考文档底部引用的github项目,有具体实现类、也有更好的讲解。

使用抽象文档模式当:

  • 需要即时添加新属性
  • 你想要一种灵活的方式来以树状结构组织域
  • 你想要更宽松的耦合系统

抽象工厂模式

通过实现接口,在不同的系列产品对象下实现预定义的业务代码,然后通过工厂类根据运行中传入的类型,生成具体实例,通过操控参数类型来生成对应的对象,好处是添加新对象时无需修改原来的对象,没有暴露对象具体实现,只暴露了工厂接口,坏处是,需要写更多对象类,在新对象业务方法有所不同时,很难兼容原有接口。

活跃对象模式

声明了一个对象,其中实现了具体方法执行和同步方法,具体类继承该对象,直接调用其中方法执行,就可以实现多线程同步。

其用处:

想要实现多线程方法,只调用其API而不需要暴露其具体执行。

适配器模式

通过一个适配器类,实现你想要转换的类的接口,重写实现方法,在具体实例中使用适配器类实例化转换类,从而达到使用重写方法。

使用适配器模式当

  • 你想使用一个已有类,但是它的接口不能和你需要的所匹配
  • 你需要使用一些现有的子类,但是子类化他们每一个的子类来进行接口的适配是不现实的。一个对象适配器可以适配他们父类的接口。

聚合器模式

对于多个微服务接口进行封装,调用一次聚合器,聚合器调用多个微服务,返回一个聚合数据。

大使模式

在调用远程服务的时候,添加一层封装后的对象,实例化Client类型,不用关注client类型里面的具体实现代码,在其中可以添加日志记录、负载均衡、队列各种中间服务,更加灵活,在修改具体实现时,无需修改调用代码。

大使适用于无法修改或极难修改的旧式远程服务。 可以在客户端上实现连接性的功能,而无需更改远程服务。

  • 大使提供了用于远程服务的本地接口。
  • 大使在客户端上提供日志记录,断路,重试和安全性。

API网关模式

使用微服务架构时会面临同时调用多个微服务封装一个数据的情况,我们可以通过访问API网关,由API网关向两个微服务调用方法,好处是客户不需要调用多个微服务。

在以下情况下使用API网关模式

  • 你正在使用微服务架构,并且需要聚合单点来进行微服务调用。

异步方法调用模式

通过异步控制类,通过控制类里封装好的异步方法启动线程,进行多线程操作。

引用

GitHub - iluwatar/java-design-patterns: Design patterns implemented in Java

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值