Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在android中创建类结构,如glide和毕加索_Java_Android_Oop - Fatal编程技术网

Java 在android中创建类结构,如glide和毕加索

Java 在android中创建类结构,如glide和毕加索,java,android,oop,Java,Android,Oop,我想创建如下类结构: Glide.with(context).load("url").into(imageView); 问题:- 我声明所有的方法和必填字段都是静态的,但它不能工作 我尝试使用setter方法,但它只允许一个setter。这个类不允许我使用第二个setter 要求: Slider.setContext(this).setDuration(3000); 我需要类和方法结构,如和库,一些方法是必需的。为此,需要使用生成器模式 public class Slider {

我想创建如下类结构:

Glide.with(context).load("url").into(imageView);
问题:-

  • 我声明所有的方法和必填字段都是静态的,但它不能工作

  • 我尝试使用setter方法,但它只允许一个setter。这个类不允许我使用第二个setter

要求:

Slider.setContext(this).setDuration(3000);

我需要类和方法结构,如和库,一些方法是必需的。

为此,需要使用生成器模式

public class Slider
{
    private static Activity context;
    private static int Duration = 3000;

    private Slider(SliderBuilder builder) {
        this.context = builder.context;
        this.Duration = builder.Duration;
    }

    //All getter, and NO setter to provde immutability
    public String getContext() {
        return context;
    }
    public String getDuration() {
        return Duration;
    }

    public static SliderBuilder with(Activity context){
        return new SliderBuilder(context);
    }

    public static class SliderBuilder
    {
        private static Activity context;
        private static int Duration = 3000;

        public SliderBuilder(Activity context) {
            this.context = context;
        }
        public SliderBuilder duration(int Duration) {
            this.Duration = Duration;
            return this;
        }
        //Return the finally constructed Slider object
        public Slider build() {
            Slider slider =  new Slider(this);
            validateSliderObject(slider);
            return slider;
        }
        private void validateSliderObject(Slider slider) {
            //Do some basic validations to check
        }
    }
}
更好地解释

编辑

如何使用


为此,需要使用生成器模式

public class Slider
{
    private static Activity context;
    private static int Duration = 3000;

    private Slider(SliderBuilder builder) {
        this.context = builder.context;
        this.Duration = builder.Duration;
    }

    //All getter, and NO setter to provde immutability
    public String getContext() {
        return context;
    }
    public String getDuration() {
        return Duration;
    }

    public static SliderBuilder with(Activity context){
        return new SliderBuilder(context);
    }

    public static class SliderBuilder
    {
        private static Activity context;
        private static int Duration = 3000;

        public SliderBuilder(Activity context) {
            this.context = context;
        }
        public SliderBuilder duration(int Duration) {
            this.Duration = Duration;
            return this;
        }
        //Return the finally constructed Slider object
        public Slider build() {
            Slider slider =  new Slider(this);
            validateSliderObject(slider);
            return slider;
        }
        private void validateSliderObject(Slider slider) {
            //Do some basic validations to check
        }
    }
}
更好地解释

编辑

如何使用



有什么问题?有代码引用吗?我需要这样的类结构:“Slider.setContext(this).setDuration(3000)”我已经发布了一个答案如果你能告诉你的用例,我们可以引导你更好。声明代码的生成器模式如下:Slider.setContext(this).setDuration(3000)有什么问题?有代码引用吗?我需要这样的类结构:“Slider.setContext(this).setDuration(3000)”我已经发布了一个答案如果你能告诉你的用例,我们可以引导你更好。声明代码的生成器模式如下:Slider.setContext(this).setDuration(3000)如何使用这个类而不使用“new”初始化关键词?@BhautikKeraliya我已经根据要求修改了我的答案。请检查如何声明强制可用方法?@BhautikKeraliya您可以使用
validateSliderObject
方法查看用户是否使用了一些我不理解的方法。如何使用此类而不使用“new”关键字初始化?@BhautikKeraliya我已根据要求修改了我的答案。请检查如何声明强制可用方法?@BhautikKeraliya您可以使用
validateSliderObject
方法查看用户是否使用了一些我不理解的方法。
Slider.with(this).duration(3000).build();