设计模式之调停者模式

发布一个k8s部署视频:https://edu.csdn.net/course/detail/26967

课程内容:各种k8s部署方式。包括minikube部署,kubeadm部署,kubeasz部署,rancher部署,k3s部署。包括开发测试环境部署k8s,和生产环境部署k8s。

腾讯课堂连接地址https://ke.qq.com/course/478827?taid=4373109931462251&tuin=ba64518

第二个视频发布  https://edu.csdn.net/course/detail/27109

腾讯课堂连接地址https://ke.qq.com/course/484107?tuin=ba64518

介绍主要的k8s资源的使用配置和命令。包括configmap,pod,service,replicaset,namespace,deployment,daemonset,ingress,pv,pvc,sc,role,rolebinding,clusterrole,clusterrolebinding,secret,serviceaccount,statefulset,job,cronjob,podDisruptionbudget,podSecurityPolicy,networkPolicy,resourceQuota,limitrange,endpoint,event,conponentstatus,node,apiservice,controllerRevision等。

第三个视频发布:https://edu.csdn.net/course/detail/27574

详细介绍helm命令,学习helm chart语法,编写helm chart。深入分析各项目源码,学习编写helm插件


————————————————------------------------------------------------------------------------------------------------------------------

类图

婚介所例子java代码:

 

public class Test {

	public static void main(String[] args) {
		MarriageMediator mediator=new SomeMarriageMediator();
		Person mark=new Man("Mark",10,mediator);
		Person jane=new Woman("Jane",10,mediator);
		Person sunny=new Woman("Sunny",7,mediator);
		mark.getPartner(jane);
		mark.getPartner(sunny);
		jane.getPartner(sunny);

	}

}

 

public abstract class Person {
	protected String name;
	protected int sex;
	protected int condition;

	public int getCondition() {
		return condition;
	}
	
	public String getName() {
		return name;
	}

	public int getSex() {
		return sex;
	}

	public abstract void getPartner(Person person);
}
public class Man extends Person {
	private MarriageMediator mediator;
	public Man(String name,int condition,MarriageMediator mediator){
		super.name=name;
		super.sex=1;
		this.condition=condition;
		this.mediator=mediator;
	}
	
	@Override
	public void getPartner(Person person) {
		mediator.matchPartner(this, person);
	}

}

 

public class Woman extends Person {
	private MarriageMediator mediator;
	public Woman(String name,int condition,MarriageMediator mediator){
		this.name=name;
		this.condition=condition;
		this.sex=2;
		this.mediator=mediator;
	}
	

	@Override
	public void getPartner(Person person) {
		this.mediator.matchPartner(this,person);
	}

}

 

public interface MarriageMediator {
	void matchPartner(Person p1,Person p2);
}
public class SomeMarriageMediator implements MarriageMediator {

	@Override
	public void matchPartner(Person p1, Person p2) {
		if(p1.getSex()==p2.getSex()){
			System.out.println("我不是同性恋");
			return;
		}
		if(p1.getCondition()==p2.getCondition()){
			System.out.println(p1.getName()+"和"+p2.getName()+"绝配");
		}else{
			System.out.println(p1.getName()+"和"+p2.getName()+"不匹配");
		}
	}

}

 


房屋中介java例子

 

public class Test {

	public static void main(String[] args) {
		HouseMediator mediator=new SomeHouseMediator();
		HousePeople buyerMark=new Buyer("Mark",10000,"世纪东方",mediator);
		HousePeople sellerSunny=new Seller("Sunny",20000,"世纪东方",mediator);
		HousePeople sellerOke=new Seller("Oke",9000,"世纪东方",mediator);
		buyerMark.deal(sellerSunny);
		buyerMark.deal(sellerOke);
		sellerSunny.deal(sellerOke);
	}

}
public interface HouseMediator {
	void deal(HousePeople p1,HousePeople p2);
}

 

public class SomeHouseMediator implements HouseMediator {
	
	@Override
	public void deal(HousePeople p1, HousePeople p2) {
		if(p1.getPeopleType()==p2.getPeopleType()){
			System.out.println("买家和卖家类型不匹配");
			return;
		}
		if(!p1.getHouseName().equals(p2.getHouseName())){
			System.out.println("房子不匹配");
			return;
		}
		if(p1.getOfferPrice()<p2.getOfferPrice()){
			System.out.println("买家出价小于卖家出价");
			return;
		}
		System.out.println(p1.getName()+"和"+p2.getName()+"对"+p1.getHouseName()+"在"+p2.getOfferPrice()+"价格成交");
	}

}
public abstract class HousePeople {
	protected String name;
	protected int offerPrice;
	protected String houseName;
	protected int peopleType;
	protected HouseMediator mediator;

	public String getName() {
		return name;
	}

	public int getOfferPrice() {
		return offerPrice;
	}

	public String getHouseName() {
		return houseName;
	}

	public int getPeopleType() {
		return peopleType;
	}

	public abstract void deal(HousePeople p);
}

 

public class Buyer extends HousePeople {
	public Buyer(String name,int offerPrice,String houseName,HouseMediator mediator){
		this.name=name;
		this.offerPrice=offerPrice;
		this.houseName=houseName;
		this.peopleType=1;
		this.mediator=mediator;
	}
	@Override
	public void deal(HousePeople p) {
		this.mediator.deal(this, p);
	}

}

 

public class Seller extends HousePeople {
	public Seller(String name,int offerPrice,String houseName,HouseMediator mediator){
		this.name=name;
		this.offerPrice=offerPrice;
		this.houseName=houseName;
		this.peopleType=2;
		this.mediator=mediator;
	}
	
	@Override
	public void deal(HousePeople p) {
		mediator.deal(p, this);
	}

}

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hxpjava1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值