设计模式改造的使用以及如何在Android中使用它



我认为改装使用外观设计模式

  • 是真的,如果是这样,它如何使用它(因为立面提供了一个共同的一组子系统的接口 - 因此客户可以与此交互接口(
  • 确实使用任何其他设计模式,如果是这样,它如何使用它

改造使用大约 12设计模式

1-建筑商模式:将复杂对象的构造与其表示形式分开。

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.build();

2-立面模式:外观模式要求必须通过统一对象进行子系统的外部和内部通信,并且此统一对象进行了翻新的对象是我们创建的翻新对象。我们仅配置改装,然后获得接口对象请求数据,其余的是框架内的修改事物,我们不需要照顾。

interface BooksApi {
    @GET("books")
    fun listBooks(): Call<List<Book>>
}

3-代理模式:在创建方法中使用以创建接口对象,如下所示

public <T> T create(final Class<T> service) {
validateServiceInterface(service);
return (T)
    Proxy.newProxyInstance(
        service.getClassLoader(),
        new Class<?>[] {service},
        new InvocationHandler() {
          private final Platform platform = Platform.get();
          private final Object[] emptyArgs = new Object[0];
          @Override
          public @Nullable Object invoke(Object proxy, Method method, @Nullable Object[] args)
              throws Throwable {
            // If the method is a method from Object then defer to normal invocation.
            if (method.getDeclaringClass() == Object.class) {
              return method.invoke(this, args);
            }
            args = args != null ? args : emptyArgs;
            return platform.isDefaultMethod(method)
                ? platform.invokeDefaultMethod(method, service, proxy, args)
                : loadServiceMethod(method).invoke(args);
          }
        });
}

4-适配器模式: Calladapter使用将一个类的接口转换为客户端期望的另一个接口。

5-抽象工厂模式: calladapter.factory是一个抽象工厂,Calladapter是工厂的产品接口。

Retrofit.Builder()
        .addCallAdapterFactory(CoroutineCallAdapterFactory())
        .build()

6-工厂模式: CallAdapter接口也是此接口,其适应方法是创建对象的方法。例如,RXJAVA2CALLADAPTER的ADAPT方法将创建一个RXJAVA事件流对象,并且在ExecutorCallAdapterFactory下的匿名内部类CallAdapter将创建ExecutorCallbackCall对象。

7-装饰器模式: executorCallbackCall在翻修中使用此模式。例如,ExecutorCallbackCall增强了OKHTTPCALL的功能。OKHTTPCALL的启用方法模式是异步的。当调用子线程时,返回将在子线程中。切换到主线程。它具有类似的二氧化模式。

8-策略模式:用来配置策略的AddConverterFactory((AddCallAdapterFactory((AddCallAdapterFactory((。在AddCallAdapterFactory((举一个例子中,配置的接口适应植物对象是策略上下文,Calladapter与策略抽象相对应,实现了不同的接口适配器CallAdapter.Adapt.Adapt((方法,不同的工厂将产生不同的策略来实现类别,并且会产生不同的策略,并且实施Adapt((行为的策略。

9-观察者模式: Retrofit支持的RXJAVA使用观察者模式,而不仅如此,当方法使用回调时,请调用OKHTTPCALL对象Enqueue((。回调也是观察者模式。

10-原型模式:它主要用于复制对象。使用原型模式创建对象比直接新对象要好得多,因为对象的clone((是局部方法,您可以直接操作内存。原型模式的另一个好处是简化对象创建,如果您需要在一段代码中多次创建对象,则可能希望使用原型模式。通常需要实现原型模式,可克隆界面表示对象已复制。

11-轻量级模式:重复使用现有的类似对象,如果找不到匹配对象,请创建新对象以减少创建对象的数量以减少内存并提高性能。这种类型的设计模式属于结构模式。

12-单例模式:确保仅在内存中有此类类的唯一对象,属于创建模式。

检查本文,以获取更多详细信息。

这绝不是一个全面的答案,但要发表评论时间太长。

我不会说它有一个模式。您绝对可以在那里找到几个,即建造构建改造实例的构建器。

我想可以说主要模式是代理模式。据我所知,改造使用此功能来实现我们定义的API接口。

它为接口创建一个代理对象,每次调用方法时,它都会通过注释并构建正确的HTTP请求。从我们的角度来看,感觉就像我们在称实现,但实际上是代理。

我想可以说,对于拦截器,它使用责任链。但是,拦截器是依赖性的一部分-Okhttp-而不是修改本身。

至于"它如何在Android中使用它?" - 我会说与其他任何地方没有什么不同。改造的设计模式并非特定于Android,并且在任何地方都可以使用。

最新更新