hello-设计模式

介绍:

https://blog.csdn.net/qq_35642036/article/details/79663378 这个博客写的非常好,基本参考他学习设计模式。

设计模式作为一种概念性的规律总结,我们要先弄明白类与类之间的几种组合方式。

方式1 类继承类  A extend B

方式2 类实现接口  A implement B

方式3 成员变量  private A a;

方式4 构造方法、普通方法的参数  method (A a){  }

方式5 临时变量  method(){ A a = new A();  }

方式6 反射  class.forName("A");

方式7 子父类  Parent p = new son();

类模式和对象模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。结构型模式:适配器模式(其中一种实现方式),行为型模式:模板方法模式和解释器模式,这三种属于类模式,其他的都是对象模式。

设计模式就是类与类之间不同的方式组合,还有就是纯概念性的组合后能实现什么功能来分类 例如 build 装饰器 策略 

创建型模式

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用新的运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

最终返回值是一个你需要创建的对象。

结构型模式

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。

参考:【设计模式】——7种结构型模式

最终组合到一起提供一种大的功能。

行为型模式

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。这些设计模式特别关注对象之间的通信。

最终侧重于做事与步骤,

参考:【设计模式】——11种行为型模式

其实还有两类:并发型模式和线程池模式。

创建型设计模式

建造者模式

@Bean
	public Docket basedocApi() {
		return new Docket(DocumentationType.SWAGGER_2)
				.groupName("fuxi-fetch-kuaidi100")// 返回docket
				.apiInfo(apiInfo()) // 返回对象ApiSelectorBuilder,并将new的docket传入进去
				.select()// 返回的是ApiSelectorBuilder
				.paths(basedocPaths())
				.build();// 返回docket

	}

	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("fuxi抓取快递100数据服务")
				.description("fuxi抓取快递100数据服务")
				.build();
	}

这里有两种方式:

1 直接new一个你需要的类 然后再设置需要的属性值最后调用,每次设置完返回当前new的这个对象。build()方法

2 new一个创建类,把需要的属性字段值赋给这个建造类 ,最后build()方法再统一传给需要创建的类里,这里的创建类就像配置文件类一样。

public class ApiInfoBuilder {
  private String title;
  private String description;
  private String termsOfServiceUrl;
  private String contact;
  private String license;
  private String licenseUrl;
  private String version;
...
  public ApiInfoBuilder licenseUrl(String licenseUrl) {
    this.licenseUrl = licenseUrl;
    return this;
  }

  public ApiInfo build() {
    return new ApiInfo(title, description, version, termsOfServiceUrl, contact, license, licenseUrl);
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值