现在的位置: 首页 > 综合 > 正文

中介模式(Mediator) 中介示例 java实现

2013年04月12日 ⁄ 综合 ⁄ 共 2777字 ⁄ 字号 评论关闭
package Mediator.MyTest;
//	租房者
	abstract class lodger {
		int maxmoney;
		int minmoney;
		String name;
		public abstract void rented();
		public abstract void statisticsHouse();
	}

package Mediator.MyTest;
//  房东
	abstract class landlord {
		int money;
		String name;
		public abstract void rent();
		public abstract void statisticsPerson();
	}

package Mediator.MyTest;


class landlordperson extends landlord{
	    Mediator mt;
		public landlordperson(String name,int money,Mediator mt)
		{
			this.mt=mt;
			this.name=name;
			this.money=money;
			mt.collectinLandlord(this);
		}
		@Override
		public void rent() {
			System.out.println("房东需要的出租金为"+money);
		}
		@Override
		public void statisticsPerson() {
			mt.statisticsPerson(this);
		}
}

package Mediator.MyTest;

class lodgerperson extends lodger {
	Mediator mt;
	public lodgerperson(String name, int minmoney, int maxmoney, Mediator mt) {
		this.mt = mt;
		this.name = name;
		this.maxmoney = maxmoney;
		this.minmoney = minmoney;
		mt.collectinLodger(this);
	}

	@Override
	public void rented() {
		System.out.println("房客需要租金为" + minmoney + "元到" + maxmoney + "左右的");
	}

	@Override
	public void statisticsHouse() {
		mt.statisticsHouse(this);
	}
}

中介的抽象方法

package Mediator.MyTest;
abstract class Mediator
	{
		public Mediator(String name)
		{
			System.out.println("中介公司:"+name);
		}
		
//		收集租房者
		public abstract void collectinLodger(lodger ld);
//		收集房东
		public abstract void collectinLandlord(landlord ll);
//		统计符合指定租房者要求的房子
		public abstract void statisticsHouse(lodger ld);
//		统计符合指定房东要求的房客
		public abstract void statisticsPerson(landlord ll);
	}

package Mediator.MyTest;

import java.util.ArrayList;
	class MediatorA extends Mediator{
		ArrayList<lodger> lodgers=new ArrayList<lodger>();
		ArrayList<landlord> landlords=new ArrayList<landlord>();
		public MediatorA() {
			super("MediatorA");
		}
		@Override
		public void collectinLandlord(landlord ll) {
			landlords.add(ll);
		}
		@Override
		public void collectinLodger(lodger ld) {
			lodgers.add(ld);
		}
		@Override
		public void statisticsHouse(lodger ld) {
			System.out.print("满足租房者"+ld.name+"要求的房子有:");
			for(landlord landlord:landlords)
			{
				if(landlord.money<=ld.maxmoney&&landlord.money>=ld.minmoney)
				{
					System.out.print(landlord.name+":"+landlord.money+";");
				}
			}
		}
		@Override
		public void statisticsPerson(landlord ll) {

			System.out.print("满足房东"+ll.name+"要求的房客有:");
			for(lodger  lodger:lodgers)
			{
				if(ll.money<=lodger.maxmoney&&ll.money>=lodger.minmoney)
				{
					System.out.print(ll.name+":"+ll.money+";");
				}
			}
		
		}
	}

测试方法:

package Mediator.MyTest;

import java.util.ArrayList;


public class MediatorTest {

	/**
	 * (Mediator)中介者模式的Java实现
	 * 
	 * 中介介绍房子给需要租房的人 房东脱中介介绍
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		MediatorA ma=new MediatorA();
		landlordperson lp1=new landlordperson("房东1",200,ma);
		landlordperson lp2=new landlordperson("房东2",400,ma);
		landlordperson lp3=new landlordperson("房东3",800,ma);
		lodgerperson ld1=new lodgerperson("房客1",100,300,ma);
		lodgerperson ld2=new lodgerperson("房客2",0,100,ma);
		lodgerperson ld3=new lodgerperson("房客3",400,800,ma);
		lodgerperson ld4=new lodgerperson("房客4",600,10000,ma);
		ld1.statisticsHouse();
		ld3.statisticsHouse();
		System.out.println();
		lp1.statisticsPerson();
	}
}

抱歉!评论已关闭.