开闭原则
1 package principles.demo1开闭原则; 2 3 /** 4 * <p>Title: AbstractSkin</p> 5 * <p>Description: </p> 6 * @author 丁帅帅 7 * @date 2021-3-29 22:30:44 8 */ 9 public abstract class AbstractSkin { 10 //显示方法 11 public abstract void display(); 12 }
package principles.demo1开闭原则; /** * <p>Title: DefaultSkin</p> * <p>Description:默认皮肤类 </p> * @author: 丁帅帅 * @date: 2021-3-29 22:39:17 * @version v1.0 */ public class DefaultSkin extends AbstractSkin { @Override public void display() { System.out.println("默认皮肤"); } }
package principles.demo1开闭原则; /** * <p>Title: DogSkin</p> * <p>Description: 狗皮肤</p> * @author: 丁帅帅 * @date: 2021-3-29 22:40:52 * @version v1.0 */ public class DogSkin extends AbstractSkin{ @Override public void display() { System.out.println("狗皮肤"); } }
1 package principles.demo1开闭原则; 2 3 /** 4 * <p>Title: SougouInput</p> 5 * <p>Description: 搜狗输入法</p> 6 * @author: 丁帅帅 7 * @date: 2021-3-29 22:43:20 8 * @version v1.0 9 */ 10 public class SougouInput { 11 private AbstractSkin skin; 12 13 public void setSkin(AbstractSkin skin) { 14 this.skin=skin; 15 } 16 public void display() { 17 skin.display(); 18 } 19 }
1 package principles.demo1开闭原则; 2 3 /** 4 * <p>Title: Client</p> 5 * <p>Description: 测试</p> 6 * @author: 丁帅帅 7 * @date: 2021-3-29 22:47:48 8 * @version v1.0 9 */ 10 public class Client { 11 12 public static void main(String[] args) { 13 //1.创建搜狗输入法 14 SougouInput input=new SougouInput(); 15 //2.创建皮肤对象 16 DefaultSkin skin1=new DefaultSkin(); 17 DogSkin skin2=new DogSkin(); 18 //3.将皮肤对象置到输入法中 19 input.setSkin(skin1); 20 //4.显示皮肤 21 input.display(); 22 } 23 24 }
道阻且长,行则将至