您可能对框架的工作原理感到好奇?这里将做一个简单的框架示例来演示框架的思想。

框架的目标

首先,为什么我们需要一个框架而不是一个普通的库?框架的目标是定义一个流程,让开发人员根据个人需求实现某些功能。换句话说,框架定义了骨架,开发人员在使用时填充了肉体。

最简单的框架

在下面的示例中,前 3 个类被定义为框架的一部分,第 4 个类是框架的客户端代码。

Main.java 是框架的入口点。这是无法改变的。

//假设这是一个框架的入口点,它不能被改变
public  class Main { public  static  void main ( String [ ] args )  { Human h =  new Human ( new Walk ( ) ) ; H。移动( ) ;        } 

Move.java 是 Hook。钩子是开发人员可以根据自己的要求定义/扩展功能的地方。

公共 抽象 类移动{公共 抽象 无效动作();
}

Human.java 是模板,它反映了框架如何工作的想法。

公共 类人类{私人移动移动;公共人类(移动米){这个。移动 =米;}公共 无效doMove (){这。移动。行动( ) ; }
}

【java精选毕业项目】全网最全合集-java系统项目60分钟完成毕设-数个项目任你挑选-(附源码素材)满足你的各项需求https://www.bilibili.com/video/BV1ab4y1p7mC/  这个简单的框架允许并要求开发人员扩展“Move”类。实际上,在这个简单的框架中,action() 方法是开发人员唯一能够改变的。

在实现内部,可以针对不同的目的对不同的“动作”进行编程。例如下面的示例打印“每小时 5 英里”,当然,您可以将其重新定义为“每小时 50 英里”。

公共 类步行扩展移动{@覆盖public  void action ( )  { // TODO 自动生成的方法存根System . 出来。println ( "每小时 5 英里 - 很慢!" ) ; }
}

结论

这里的例子只是展示了一个简单的模板和钩子是如何工作的。一个真正的框架比这更复杂。它不仅包含模板-模板关系等其他关系,而且还包含关于如何有效提高性能和编程可用性的非常复杂的过程。

学习更多java知识关注微信公众号  HOME十二  了解更多

【java练手项目】-酒店客房管理系统-b站最详细讲解-最快上手熟练 https://www.bilibili.com/video/BV1vb4y1p7N4/

如何设计 Java 框架?– 一个简单的例子相关推荐

  1. java applet 一个简单的例子(applet+html)

    java applet是一个类,其层次结构如下图:   类 JApplet  java.lang.Object    java.awt.Component        java.awt.Contai ...

  2. 一个简单的例子看java线程机制

    一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...

  3. java txtreader_一个简单的Java读写文件例子

    针对txt文件的读写可以使用java的读写操作.以下是一个简单的例子: import java.io.BufferedReader; import java.io.BufferedWriter; im ...

  4. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  5. 用java写一个简单的区块链(下)

    用java写一个简单的区块链(下) 2018年03月29日 21:44:35 java派大星 阅读数:725 标签: 区块链java 更多 个人分类: 区块链 版权声明:本文为博主原创文章,转载请标明 ...

  6. pycharm安装scrapy失败_Scrapy ——环境搭配与一个简单的例子

    在我刚接触爬虫的时候就已经听过Scrapy大名了,据说是一个很厉害的爬虫框架,不过那个时候沉迷于Java爬虫.现在终于要来揭开它神秘的面纱了,来一起学习一下吧 欢迎关注公众号:老白和他的爬虫 1.环境 ...

  7. antlr4例子_ANTLR和网络:一个简单的例子

    antlr4例子 网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在自己的机器上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可 ...

  8. ANTLR和网络:一个简单的例子

    网络上的ANTLR:为什么? 我开始在MS-DOS上编写我的第一个程序. 因此,我非常习惯在计算机上安装工具. 但是在2016年,网络无处不在,因此那里也可能需要我们的语言. 可能的情况: ANTLR ...

  9. JPA基础(二)之实现一个简单 JPA 例子

    实现一个简单 JAP 例子 需要学习 JPA,首先需要把环境搭起来,这里选择实现 JPA 规范的持久层框架是 Hibernate,版本为 5.0.7.Final,并且采用 maven 进行依赖包的管理 ...

  10. 一步一步解读神经网络编译器TVM(一)——一个简单的例子

    @TOC 前言 这是一个TVM教程系列,计划从TVM的使用说明,再到TVM的内部源码?为大家大致解析一下TVM的基本工作原理.因为TVM的中文资料比较少,也希望贡献一下自己的力量,如有描述方面的错误, ...

最新文章

  1. SQL Server基础
  2. Activity向Fragment传值
  3. 程序员在很多人心里的作用...
  4. .NET大型Web站点StackOverflow架构分析
  5. go语言爬虫教程python_Go语言爬虫 - Go语言中文网 - Golang中文社区
  6. zabbix安装与使用
  7. 狼叔直播 Reaction《学习指北:Node.js 2022 全解析》
  8. msf如何升级_Kali linux 2016.2(Rolling)中的Metasploit如何更新与目录结构初步认识...
  9. mysql 内存 256m_解决mySQL占用内存超大问题
  10. 解决手机网站点击出现蓝色框的问题
  11. shell 批量修改文件名字
  12. 递归算法及经典递归例子代码实现
  13. docker安装vim命令
  14. 旭日x3派,手势识别之Momo Quanghuang学习记录
  15. CAD 系统变量参数大全
  16. 微信,你的野心到底有多大?
  17. 圈儿里使人泪两行的事儿,千万要注意。
  18. 二进制换算十进制、八进制和十六进制。
  19. 服务器 战地4 无限载入,战地4卡在loading界面无限载入的解决方法_快吧单机游戏...
  20. 发展5G通信,测试先行

热门文章

  1. Python系列之简单算法分析
  2. 小程序自动换行text richtext
  3. 百度通用 AI 大突破,智能体通过交互式学习实现举一反三
  4. Netflix、Disney常见流媒体视频平台对比
  5. qml 皮肤(一)使用系统自带的Style
  6. python实现希尔排序算法_python实现希尔排序算法
  7. Qt 程序中获取 CPUID UUID 等系统信息的方法(win 平台,wmic)
  8. 【报复性赚钱】2023年5大风口行业
  9. 抖音视频号情感类短视频爆火,背后有什么特点?有什么值得借鉴
  10. 机器学习实验之肿瘤分类与预测(朴素贝叶斯)