设计模式之访问者模式

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

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

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

第二个视频发布  https://edu.youkuaiyun.com/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.youkuaiyun.com/course/detail/27574

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


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

1类图

2清洁工例子java示例

 
public class Test {

	public static void main(String[] args) {
		Cleaner mark=new CleanerMark("Mark");
		Cleaner jane=new CleanerJane("Jane");
		Cleaner director=new CleanerDirector("andy");
		Park park=new Park("月湖公园");
		ParkArea areaA=new ParkAreaA("湖心岛");
		ParkArea areaB=new ParkAreaB("小树龄");
		park.addParkArea(areaA);
		park.addParkArea(areaB);
		
		areaA.accept(jane);
		areaB.accept(mark);
		park.accept(director);
	}

}
public abstract class Cleaner {
	protected String name;
	public abstract void clean(ParkArea area);
}
public class CleanerDirector extends Cleaner {
	public CleanerDirector(String name){
		this.name=name;
	}
	@Override
	public void clean(ParkArea area) {
		System.out.println("cleaner "+this.name+" 完成对区域"+area.getName()+"的打扫");
	}

}
 
public class CleanerJane extends Cleaner {
	public CleanerJane(String name){
		this.name=name;
	}
	@Override
	public void clean(ParkArea area) {
		System.out.println("cleaner "+this.name+" 完成对区域"+area.getName()+"的打扫");
	}

}
public class CleanerMark extends Cleaner {
	public CleanerMark(String name){
		this.name=name;
	}
	@Override
	public void clean(ParkArea area) {
		System.out.println("cleaner "+this.name+" 完成对区域"+area.getName()+"的打扫");
	}

}
public abstract class ParkArea {
	protected String name;
	
	public String getName() {
		return name;
	}

	public  abstract void accept(Cleaner cleaner);
}
public class ParkAreaA extends ParkArea {
	public ParkAreaA(String name){
		this.name=name;
	}
	@Override
	public void accept(Cleaner cleaner) {
		cleaner.clean(this);
	}

}
public class ParkAreaB extends ParkArea {
	public ParkAreaB(String name){
		this.name=name;
	}
	@Override
	public void accept(Cleaner cleaner) {
		cleaner.clean(this);
	}

}
public class Park extends ParkArea {
	private Set<ParkArea> elements=new HashSet<ParkArea>();
	public Park(String name){
		this.name=name;
	}
	public void addParkArea(ParkArea area){
		elements.add(area);
	}
	@Override
	public void accept(Cleaner cleaner) {
		for(ParkArea area:elements){
			cleaner.clean(area);
		}
	}

}
 

3警察巡逻例子java实现

public class Test {

	public static void main(String[] args) {
		Region jiangdong=new JiangDongRegion("jiangdong");
		Region haishu=new HaiShuRegion("haishu");
		City city=new City("ningbo");
		city.addRegion(haishu);
		city.addRegion(haishu);
		Police mark=new FreshmanPolice("mark");
		Police sunny=new SophermoePolice("sunny");
		Police deisy=new DirectorPolice("deisy");
		jiangdong.accept(deisy);
		haishu.accept(sunny);
		city.accept(deisy);
	}

}
 
public class SophermoePolice extends Police {
	public SophermoePolice(String name){
		this.name=name;
	}
	@Override
	public void visit(Region region) {
		System.out.println(this.name+"视察了"+region.getName()+"区域");
	}

}

public abstract class Region {
	protected String name;

	public abstract void accept(Police police);
	public String getName() {
		return name;
	}
	
	
}
public abstract class Police {
	protected String name;
	public abstract void visit(Region region);
	
	public String getName() {
		return name;
	}
	
	
}
public class JiangDongRegion extends Region {
	public JiangDongRegion(String name){
		this.name=name;
	}

	@Override
	public void accept(Police police) {
		police.visit(this);
	}
}
 
public class HaiShuRegion extends Region {
	public HaiShuRegion(String name){
		this.name=name;
	}
	@Override
	public void accept(Police police) {
		police.visit(this);
	}

}
public class FreshmanPolice extends Police {
	public FreshmanPolice(String name){
		this.name=name;
	}
	@Override
	public void visit(Region region) {
		System.out.println(this.name+"视察了"+region.getName()+"区域");
	}

}
 
public class DirectorPolice extends Police {
	public DirectorPolice(String name){
		this.name=name;
	}
	
	@Override
	public void visit(Region region) {
		System.out.println(this.name+"视察了"+region.getName()+"区域");
	}

}
public class City extends Region {
	private List<Region> regionList=new ArrayList<Region>();

	public City(String name){
		this.name=name;
	}
	public void addRegion(Region region){
		regionList.add(region);
	}
	@Override
	public void accept(Police police) {
		for(Region region:regionList){
			police.visit(region);
		}
	}

}











 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hxpjava1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值