`
suifeng
  • 浏览: 175843 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

面向概念编程---DEMO

阅读更多

直接看代码->

新建类test.Drive, 然后copy到Eclipse中执行

package test;

import java.util.Scanner;

//面向概念编程demo--a+b

/*=========================*\
  step 1 : 提出概念  a + b
\*=========================*/

interface A_ADD_B_Concept {
	/**
	 * a + b
	 * @return a+b的值
	 */
	int a_add_b();
}

/*==============================*\
	step 2 构造实体 ---具体化概念
	
	一般包含两个实体:视图和模型
	2.1, 模型实体
	2.2, 视图实体, 依赖于模型实体
\*==============================*/

class A_ADD_B_View implements A_ADD_B_Concept {

	A_ADD_B_Model model; //视图依赖于模型
	
	A_ADD_B_View(A_ADD_B_Model model) {
		this.model = model;
	}
	
	public void readA(int a) {
		int num = Util.readInt("a = ");
		model.setA(num);
		a_add_b();
	}

	public void readB(int b) {
		int num = Util.readInt("b = ");
		model.setB(num);
		a_add_b();
	}

	/**
	 * 视图的计算, 依赖于模型的计算
	 */
	public int a_add_b() {
		int result = model.a_add_b();
		System.out.println("a + b = " + model.getA() + " + " + model.getB() + " = " + result);
		return result;
	}
}

class A_ADD_B_Model implements A_ADD_B_Concept {

	int a;
	int b;
	public int getA() {
		return a;
	}

	public int getB() {
		return b;
	}

	public void setA(int a) {
		this.a = a;
	}

	public void setB(int b) {
		this.b = b;
	}

	public int a_add_b() {
		return a + b;
	}
}


/*=========================================*\
	step 3 安装驱动 ---驱动实体在计算机上运行
	
	把实体组织起来执行
\*=========================================*/
public class Drive {
	
	A_ADD_B_Model model = new A_ADD_B_Model();
	A_ADD_B_View view = new A_ADD_B_View(model);
	
	public void drive() {
		for (int i=0; i<10; i++) {
			System.out.println("=============================");
			view.readA(0);
			System.out.println("=============================");
			view.readB(0);
		}
	}
	
	public static void main(String[] args) {
		Drive drive = new Drive();
		drive.drive();
	}
}

//工具类
class Util {
	public static int readInt(String msg) {
		System.out.print(msg);
		int result = -1;
		Scanner scanner = new Scanner(System.in);
		result = scanner.nextInt();
		return result;
	}
}
 
0
0
分享到:
评论
1 楼 lliiqiang 2013-12-19  
一个软件最好包含所有的信息,这样可以使用相对路径,然而不管在哪都能使用自己的资源.不可避免问题要尽量减小问题而不是走极端.

相关推荐

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    3.1 接口的概念 接口是抽象方法与常量的结合. 接口的定义方式为: interface 接口名 { 数据类型 常量名 = 常量值; 返回值类型 方法名(); .......} 在Java中,一个类只能继承一个类,但是却可以实现(implements)...

    WebService-Demo实例

    Web服务描述是用标准的、规范的 XML 概念描述的,称为 Web 服务的服务描述,这一描述囊括了与服务交互需要的全部细节,包括消息格式(详细描述操作)、传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现...

    个人用来练手的Python Demo合集

    这个Demo通过编写一个简单的类,展示了Python中类的定义、实例化、继承等基本概念,是学习面向对象思想和语法的良好实践。 Python网络编程部分共有4个Demo,包括TCP客户端、TCP服务端、UDP客户端和UDP服务端的实现。...

    js面向对象

    把主要篇幅放在如何实现JavaScript的面向对象编程方面。 1. 用JavaScript实现类 JavaScritpt没有专门的机制实现类,这里是借助它的函数允许嵌套的机制来实现类的。一个函数可以包含变量,又可以包含其它函数,...

    AES-Java-iOS-Android.zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    精通Windows.API-函数、接口、编程实例.pdf

    13.1 GDI编程接口概述 379 13.1.1 Windows GDI的功能 379 13.1.2 链接库与头文件 380 13.2 设备上下文(DC)、输出操作与图形对象 380 13.2.1 设备上下文类型与关联设备 380 13.2.2 图形对象的作用及与DC的...

    派单管理系统demo.zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    个人总结的Java算法和实战demo.zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    毕业设计,非遗文化中心App交互设计Demo.zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    java基础练习demo,算法练习,leetecode操练.zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    DDD-demo

    参数名编译后丢失)数据验证和错误处理DRY原则业务逻辑异常和数据校验异常被混在了一起把数据验证的工作量初始到了调用方,而调用方本来就是应该提供合法数据的,所以更加合适业务逻辑代码的预设面向过程编程胶水...

    股吧情绪倾向量化DEMO(毕业设计+机器学习课程project).zip

    面向对象: Java是一种纯粹的面向对象编程语言,支持封装、继承和多态等面向对象的概念。这使得Java编写的代码更加模块化、可维护和可扩展。 多线程支持: Java内置了对多线程的支持,允许程序同时执行多个任务。这...

    职工信息管理java实现小demo

    2. **面向对象**: Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的概念,使得程序结构更加模块化和可复用。 3. **垃圾回收**: Java具有自动内存管理机制,称为垃圾回收器,它负责自动释放不再...

    学生管理系统java实现小demo

    2. **面向对象**: Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的概念,使得程序结构更加模块化和可复用。 3. **垃圾回收**: Java具有自动内存管理机制,称为垃圾回收器,它负责自动释放不再...

    游戏猜一猜java实现小demo

    2. **面向对象**: Java是一种面向对象的编程语言,它支持封装、继承和多态等面向对象的概念,使得程序结构更加模块化和可复用。 3. **垃圾回收**: Java具有自动内存管理机制,称为垃圾回收器,它负责自动释放不再...

    汇编语言还原高级语言demo.zip

    - **无高级抽象**:缺乏高级语言中的类、对象、函数库等高级抽象概念,所有编程结构如循环、条件分支等都需要手工实现。 - **依赖特定硬件**:汇编程序直接依赖于特定处理器的指令集、寄存器组织和寻址模式,更换...

    OPenGL编程书籍

    读完了这一课,你会学到如何在空间放置模型,并且会知道深度缓存的概念。 3.添加颜色: 作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 ...

    micro-frontends-framework:微前端架构demo(项目引入,消息总线,构建部署,监听服务)....

    甚至允许使用不同的编程语言来编写不同服务,也可以由不同的团队来管理然而,越来越重的前端工程也面临同样的问题,自然地想到了将微服务思想应用(照搬)到前端,于是有了「微前端(micro-frontends)」的概念:即...

    Telegram-inspirational--bot

    主要目标是通过将面向对象编程的主要概念,类,模块,对象以及访问它们的属性付诸实践,来大量使用外部API。 该项目是使用TDD技术构建的。How to find the bot on Telegram 要在Telegram上找到该机器人,只需下载...

    asp.net知识库

    asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多...

Global site tag (gtag.js) - Google Analytics