开发框架】【Java基础】java最简单的框架

2021-01-28 20:48发布

4条回答
灰机带翅膀
2楼 · 2021-01-29 10:29

最简单的框架就是一个函数接口 lower.MyFramework,它对两个double操作后返回一个double值。

来自幽府的客人
3楼 · 2021-01-29 17:08

最简单的框架就是一个函数接口 lower.MyFramework,它对两个double操作后返回一个double值

你--l银河系l--我
4楼 · 2021-02-04 14:33

Struts相对来说简单些。因为Strusts只操作与Serlvert,不关系到别的(有些牵强,但是他对于表达式,国际化,都是在用户体验上,也都是与Servlet打交道)。就算是Strusts2X,也是使用拦截器拦截用户的请求,作用到servlet。但是Spring所设计的东西和层面太多,而且都是微型的、切面的编程,配置文件和核心对于基础较差的还是很有难度的,尤其是初学者。Hibernate的使用,要对数据库要相对很熟悉,尤其是数据库的理论方面,而且,Hibernate的配置需要数据的基础好,但是学好了Hibernate的话,对于编程有很大的好处


我的网名不再改
5楼 · 2021-05-14 16:37

框架framework的目的是定义骨架式方案,处理各种相同的底层细节;而开发人员使用框架时,能够依照自己的需求实现自己的功能——仅仅须要填入自己的东西/flesh。

最简单的框架,类似于JUnit,它有一个main(String[] args)启动本框架。假设是applet或GUI框架,就有太多底层细节须要处理。


package principle.callback.lower;/** * 最简单的Java框架 *  * @author yqj2065 * @version 2014.10 */public interface MyFramework{public double op(double m,double n);}

最简单的框架就是一个函数接口 lower.MyFramework,它对两个double操作后返回一个double值。


package principle.callback.lower;import tool.God;public class Main{/**     * 命令行启动本框架。     * @param args 至少两个double     */public static void main(String[] args){MyFramework f = (MyFramework)God.create("2065");double d =f.op(Double.parseDouble(args[0]),Double.parseDouble(args[1]));System.out.println(d);}/**     * 和JUnit一样,提供App调用的方式。     */public static double runFramework(MyFramework f,double x,double y){return f.op(x,y);}}

注意,框架一般使用的技术就是反射和回调


  • tool.God利用反射和配置文件创建某个对象,

  • Main调用f.op(double,double),详细的方法体由上层代码提供。


ok,框架已经设计完毕。


如今是我们应用程序猿干活的时候了。快哭了

应用程序猿最開始当然写HelloWorld,来熟悉框架...HelloWorld不可以和高傲的框架在一个包中。

package principle.callback;public class HelloWorld implements principle.callback.lower.MyFramework{public double op(double m,double n){return m+n;}}

应用程序猿还要依照框架的要求,自己写好配置文件。假设框架的文档说明:须要在my.properties中定义要创建的对象,于是我们在my.properties中加上:

2065=principle.callback.HelloWorld

接下来在命令行中执行框架,比如:

E:\designPattern>java principle.callback.lower.Main 1.2 3.4
4.6

有时候,我们应用程序猿在应用程序中启动或调用框架,也能够:

package principle.callback;import tool.God;import principle.callback.lower.MyFramework;import principle.callback.lower.Main;public class App{public static void main(String[] args){MyFramework f = (MyFramework)God.create("2065");double d = Main.runFramework(f,1.2,3.4);System.out.println(d);}}

当然,设计App的程序猿和设计HelloWorld的程序猿同病相怜,自己人就不用反射了:


public static void test(){double d = Main.runFramework(new HelloWorld(),1,3);System.out.println(d);MyFramework f = (double m,double n)->{return m * n ;};d = Main.runFramework(f,1,3);System.out.println(d);f = (m,n)->{return m +2*n ;};d = Main.runFramework(f,1,3);System.out.println(d);}

输出:


4.0
3.0
7.0

回调使得编写上层模块的程序猿有了新的体验——填空式编程

这就有了库与框架的差别——上层模块的程序猿直接调用的,属于库函数;要求上层模块的程序猿提供的回调函数的,属于框架。

假设我们通吃上层和下层,设计框架时使用回调机制;假设我们让愚蠢的应用程序猿填空,哈哈,我们告诉他们一个术语——控制反转。

假设我们是框架的应用程序猿,...好吧,我们也设计一个框架,控制反转。


相关问题推荐

  • 回答 15

    我帮你整理10道面试最容易问的框架问题哈,然后答案内容太多了,你自己去网上搜吧。。1、谈谈对spring框架的了解 ,spring有什么作用(IOC,AOP),spring的核心是什么?2、SpringMVC的常用注解,执行流程,都有哪几种解析器,必须要返回modelAndView么,Spri...

  • 回答 24
    已采纳

    Spring:在开发人员的选择中,Spring MVC和Spring Boot远远领先于其他Java技术。对于开发人员来说,这里的一大优势是他们可以不受其他模块约束并专注于一个模块,因为spring利用了控制反转(IoC)。MyBatis :支持普通 SQL查询,存储过程和高级映射的优秀持久层...

  • 回答 4
    已采纳

    1、Django Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,模板T和视图V。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是CMS(内容管理系统)软件。2、Flask Flask是一个使用 Python ...

  • 回答 3

    框架的好处:对于互联网的产品而言,前端用户体验往往决定了一款产品的竞争力和吸引力;而对于前端工程师来说,考虑的问题更为复杂,他们既要为网站上提供的产品和服务实现一流的Web页面、优化代码,保证体验的最佳,更要考虑与市面上各大浏览器的兼容性,还需...

  • 回答 6

    AngularJS框架React框架Vue框架

  • 回答 2

    java常用开源框架如下:1.SpringFramework 【Java开源JEE框架】Spring是一个解决了许多在J2EE开发中常见的问题的强大框架。 Spring提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的...

  • 回答 1

    用来做分布式爬虫的框架

  • 回答 1

    主流框架还是spring生态的内容!现在微服务架构已经成为主流,所以spring生态里是springboot和springcloud是首当其冲的!还有Apache的dubbo也是主流。可以学习。其他关于JAVA的比如mybatis,hibernate,redis,netty,ngnix这些都是比较常用于微服务分布式架...

  • 回答 3

    对于学Java的人来说,学习和了解框架是必修的,但是Java的框架比较多,并不需要全部都学,只要学几个常用的框架,在工作的时候就差不多够用了。Java的框架主要有:SpringMVC、Spring、Mybatis、Dubbo、Maven、RabbitMQ、Log4j、Ehcache、Redis、Shiro。不过这...

  • 回答 1

    javascript 就是我们常说的原生js,用来做前端页面开发的脚本语言,当然现在通过nodejs也可以实现后端开发。jQuery是js的函数库,用原生js开发常见的业务功能比较繁琐,所以就诞生了jQ,它将大多数的常用函数进行了封装,大大提升了开发效率。AJAX是一种js中的...

  • 回答 6
    已采纳

    1:weUI  官方网址:https://weui.io/官方介绍:WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。优点:做为开发者的我们可以不用写太多css,直接拿过来就可以用。组件都有...

没有解决我的问题,去提问