继承、装饰设计模式、静态代理、动态代理

1、继承
2、装饰者模式
3、静态代理
4、动态代理

1、继承、然后重写父类方法

比如有
接口 A
类A的实现类 B
类 C需要对类B进行增强、继承了类B
增强的类 C 直接重写 父类方法 对类B 进行了增强

使用时机:继承关系已经存在 (类C继承类B)

public interface man{
   
 void play();
}
public class normalman implements man{
   
	@Override
	public void play() {
   
		System.out.println("玩");
		
	}
}
public class superman extends  normalman  {
   
	@Override
	public void play() {
   
		System.out.println("超级玩");
		
	}
}

2、装饰设计模式

接口A
类A的实现类B
类C 需要增强B 同时也实现了A
需要注意的是:类C虽然增强了B,但是没有直接继承B。
类C 需要重写类A的所有方法
使用时机:(没有已知继承关系,需要自己添加继承关系的时候,建议使用包装设计模式,原理:耦合度高不利于后期维护)
缺点:一旦类A的方法过多,需要逐一实现容易造成累赘–>解决方式 动态代理

public interface man{
   
 void play();
}
public class normalman implements man{
   
	@Override
	public void play() {
   
		System.out.println("玩");
		
	}
}
public class superman implements man  {
   
 public normalman  n ;

public superman (normalman   n){
   
  this.n=n;
}
	@Override
	public void play() {
   
	     n.play();
		System.out.println("超级玩");
		
	}
	@Test
	public void test(){
   
normalman  n = new normalman  ();
superman  sm = new superman (n)

你可能感兴趣的:(JAVASE)