编写一个应用程序,利用代理模式,模拟中介和购房者完成房屋购买过程。

简介: 编写一个应用程序,利用代理模式,模拟中介和购房者完成房屋购买过程。

🏔题目:

编写一个应用程序,利用代理模式,模拟中介和购房者完成房屋购买过程。

共有一个接口和三个类:

  1. Business —— 业务接口
  2. Buyer —— 购房者类
  3. Intermediary —— 中介类
  4. Test —— 主类

🐒1.业务接口

业务接口包括:

(1)两个数据域(成员变量)

RATIO: double型,代表房屋中介收取的中介费用占房屋标价的比例,初值为0.022

TAX:double型,代表购房需要交纳的契税费用占房屋标价的比例,初值为0.03

(2)一个方法

void buying (double price):price表示房屋总价

package seven_topic;
interface Business {
  double RATIO = 0.022;// 
  double TAX = 0.03;// 
  void buying(double price);// 接口方法
}

🐒2.购房者类

购房者类Buyer是业务接口Business的非抽象使用类,包括:

(1)一个成员变量

name:String型,表示购房者姓名

(2)一个方法:

public void buying (double price):显示输出购买一套标价为price元的住宅。

class Buyer implements Business {
  String name;// name:String型,表示购房者姓名
  public void buying(double price) {
    // public void buying (double price):显示输出购买一套标价为price元的住宅
    System.out.println(name + "购买了一套总价为" + price + "元的住宅。");
  }
}

🐒3.中介类

中介类Intermediary是业务接口Business的非抽象使用类,包括:

一个成员变量

buyer:Buyer型,代表房屋中介接待的购房对象

三个方法

Intermediary(Buyer buyer):构造方法

public void buying (double price):购房者buyer购买一套标价为price元的住宅,之后计算需要支付的中介费和交纳的契税

public void charing(double price):表示计算购买标价为price元的住宅时,房屋中介需要收取的中介费和需要交纳的契税(中介费计算公式:房屋标价*RATIO,契税计算公式:房屋标价*TAX)

class Intermediary implements Business {
  Buyer buyer;// buyer:Buyer型,代表房屋中介接待的购房对象
  Intermediary(Buyer buyer) {
    // Intermediary(Buyer buyer):构造方法
    this.buyer = buyer;//
  }
  public void buying(double price) {
    // public void buying (double price):购房者buyer购买一套标价为price元的住宅,之后计算需要支付的中介费和交纳的契税
    System.out.println("中介公司收取中介费用: " + price * RATIO + "元。");
  }
  public void charing(double price) {
    // public void charing(double price):表示计算购买标价为price元的住宅时,房屋中介需要收取的中介费和需要交纳的契税
    System.out.println("需要交的契税" + price * TAX + "元。");
  }
}

🐒4.Test类

在Test类中定义购房对象——姓名Lisa,从控制台输入她计划买的房屋标价,如650000元。请你通过上面定义的接口和类,实现她通过中介买房的过程,显示需交纳的中介费和契税。如下图3所示:

import java.util.*;
class Test {
  public static void main(String[] args) {
    Buyer s1 = new Buyer();
    s1.name = "lisa";
    // 在Test类中定义购房对象——姓名Lisa
    System.out.println("请输入要购买的房屋标价: ");
    @SuppressWarnings("resource")
    Scanner input = new Scanner(System.in);
    double price = input.nextDouble();
    // 从控制台输入她计划买的房屋标价,如650000元。
    s1.buying(price);// Buyer
    Intermediary intermediary = new Intermediary(s1);
    intermediary.buying(price);// Intermediary
    intermediary.charing(price);
  }
}

以上就是此次作业的全部内容了,如果发现了其中的问题或不足,请直接指出🙂

2022.5.14☀

相关文章
|
8月前
|
设计模式 前端开发
前端设计模式之【中介模式】
前端设计模式之【中介模式】
47 1
|
设计模式 缓存 算法
JAVA设计模式14:策略模式,使算法的变化独立于使用它的客户端
JAVA设计模式14:策略模式,使算法的变化独立于使用它的客户端
108 0
|
5月前
|
设计模式
抽象工厂和原型设计模式之间的区别
【8月更文挑战第22天】
40 0
|
5月前
类与类之间的协作模式问题之桥接模式在软件开发中应用的问题如何解决
类与类之间的协作模式问题之桥接模式在软件开发中应用的问题如何解决
|
5月前
|
项目管理
类与类之间的协作模式问题之中介者模式在项目管理中有什么作用
类与类之间的协作模式问题之中介者模式在项目管理中有什么作用
|
7月前
|
消息中间件 运维 Java
支付系统的心脏:简洁而精妙的状态机设计与核心代码实现
本篇主要讲清楚什么是状态机,简洁的状态机对支付系统的重要性,状态机设计常见误区,以及如何设计出简洁而精妙的状态机,核心的状态机代码实现等。 我前段时间面试一个工作过4年的同学竟然没有听过状态机。假如你没有听过状态机,或者你听过但没有写过,或者你是使用if else 或switch case来写状态机的代码实现,建议花点时间看看,一定会有不一样的收获。
|
8月前
|
设计模式 缓存 编译器
【C/C++ 设计模式应用】精细化职责与灵活性:C++中的发送接口和数据转换基类设计
【C/C++ 设计模式应用】精细化职责与灵活性:C++中的发送接口和数据转换基类设计
129 0
|
8月前
|
设计模式 算法 数据库
C/C++外观模式解析:简化复杂子系统的高效方法
C/C++外观模式解析:简化复杂子系统的高效方法
76 0
|
8月前
|
设计模式
二十三种设计模式全面解析-解密中介者模式:构建灵活的通信桥梁
二十三种设计模式全面解析-解密中介者模式:构建灵活的通信桥梁
|
设计模式 Java
JAVA设计模式10:外观模式,使得客户端可以通过简单的接口与子系统交互
JAVA设计模式10:外观模式,使得客户端可以通过简单的接口与子系统交互