JAVA接口设计模式,JAVA接口设计文档

今夕 205 2023-11-08


JAVA接口设计模式-工厂模式

步骤

1.首先来看一个简单的程序范例:在进行类设计的时候,要求需要有接口,而后接口要通过子类才可以进行对象的实例化处理。

传统代码开发:

package com.gwolf.springmvc.factory;


interface IFruit {//定义一个描述水果的操作

        public void eat();//吃水果

}


class Apple implements IFruit {

        @Override

        public void eat() {

                System.out.println("削皮吃苹果!");

        }

        

}


public class FactoryDesign {

        

        public static void main(String[] args) {

                IFruit fruit = new Apple();

                fruit.eat();

        }


}

image.png

2.此时的程序实现的关键是:“IFruit fruit = new Apple();”,如果没有此语句,那么接口对象将无法进行实例化的操作处理。但是最大的败笔也在此。主方法是一个客户端,那么对于程序的修改不应该影响到客户端。假如我们又有了一个新的实现类:

package com.gwolf.springmvc.factory;


interface IFruit {//定义一个描述水果的操作

        public void eat();//吃水果

}


class Apple implements IFruit {

        @Override

        public void eat() {

                System.out.println("削皮吃苹果!");

        }

        

}


class Orange implements IFruit {

        @Override

        public void eat() {

                System.out.println("剥皮吃橘子!");

        }

        

}



public class FactoryDesign {

        

        public static void main(String[] args) {

                IFruit fruit = new Apple();

                fruit.eat();

        }


}

image.png

3.假如我们需要吃橘子,我们需要修改客户端的代码。

java实现可移植性的关键是JVM,也就是说所有的程序都是在JVM上执行,而不同的操作系统中有匹配的JVM,那么相当于程序经过了JVM然后找到了操作系统。

这个时候new是整个开发过程之中最大的耦合元凶,而我们在开发之中要想解耦合的关键在于要引入一个第三方,所以这个类可以使用Factory类描述。

class Factory {

        public static IFruit getInstance(String className) {

                if("apple".equals(className)) {

                        return new Apple();

                }else if("orange".equals(className)) {

                        return new Orange();

                }else {

                        return null;

                }

        }

}

image.png

4.这样我们在客户端就可以解耦对象的创建:

public class FactoryDesign {

        public static void main(String[] args) {

                if(args.length==1) {

                        IFruit fruit = Factory.getInstance(args[0]);

                        fruit.eat();

                }

        }


}

image.png

5.当更换使用的IFruit子类的时候主方法没有任何的变化就可以实现子类的变更,这样的设计就是工厂设计模式。

package com.gwolf.springmvc.factory;


interface IFruit {//定义一个描述水果的操作

        public void eat();//吃水果

}


class Apple implements IFruit {

        @Override

        public void eat() {

                System.out.println("削皮吃苹果!");

        }

        

}


class Orange implements IFruit {

        @Override

        public void eat() {

                System.out.println("剥皮吃橘子!");

        }

        

}


class Factory {

        public static IFruit getInstance(String className) {

                if("apple".equals(className)) {

                        return new Apple();

                }else if("orange".equals(className)) {

                        return new Orange();

                }else {

                        return null;

                }

        }

}



public class FactoryDesign {

        public static void main(String[] args) {

                if(args.length==1) {

                        IFruit fruit = Factory.getInstance(args[0]);

                        fruit.eat();

                }

        }


}

image.png

6.以后只要是你编写的接口如果要想取得接口的实例化对象,第一反应就是写工厂类。


image.png


java 如何设计接口

java是现在使用量最多的一门编程语言,在现在很多互联网应用中,都会用到java,也有很多公司使用java做为接口,比如给网站提供接口,给app提供接口等,下面就介绍一下java如何设计接口。

步骤

1.首先要想好是给什么业务提供的接口,比如是给旅游业务提供的接口,可以叫做TravelService,意思就是说需要根据业务给项目起名字。同样,如果只是在已有的java项目中开发新接口,可以单独建一个包,包名也是根据业务来起名字。

image.png

2.如果新设计的接口,还要区分客户端,比如是给app提供接口,是给网站提供接口,为了项目结构清晰,需要在项目的包进行区分,比如给app端提供的接口,包名可以叫app,给网站提供的接口包名可以叫web,让其他人一眼就可以通过名字来区分业务。

image.png

3.上面说的只是java接口项目目录结构设计,本文不介绍详细的项目目录结构,因为现在的项目基本都是MVC结构,有service层,view层,controller层等。所以这个可以根据自己使用的java框架来设计。

image.png

4.下面就是具体代码的设计了,代码中的类名和方法名也要根据具体的需求来定义,并加好注释,这不单单是做接口这样,所有的项目都需要遵守,建议上抛异常,父类统一处理,当然了可以根据自己的需求设计代码结构。

image.png

5.代码加好日志,这看似不影响业务,但是日志的重要性到后期调bug时显得尤为重要,因为一般接口访问量都会比较大,也是最容易出现问题的,所以合理的增加日志,会使程序后期维护起来非常的容易,当然下图只是举例。

image.png

6.代码合理性本文不做太多介绍,因为涉及的太多了,现在java接口返回给客户端的数据类型一般都是JSON格式,所以再返回数据这里可以使用JSON格式返回,可以单独定义返回数据的方法统一调用。

image.png
7.本文介绍了java接口设计当中的一些非常基本的原则,不同公司和不同业务设计的肯定也不一样,但是结构大致类似,在代码设计方面不是一片文章就可以让自己清晰明了的,需要不断的在工作学习中总结经验,希望本文可以对读者有一些帮助。




版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口设计文档概述,接口设计主要包括哪些内容
下一篇:探索组件间接口测试的重要性及实施方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~