开闭原则

 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 }

 

posted @ 2021-03-29 23:35  丁帅帅dss  阅读(54)  评论(0)    收藏  举报