zoukankan      html  css  js  c++  java
  • 设计模式 接口隔离原则

    设计模式 接口隔离原则
    用类图说明

    然后书写代码清单

    public interface IPettyGirl{
    	// 面孔
    	public void goodLooking();
    	// 身材
    	public void niceFigure();
    	// 气质
    	public void greatTemperament();
    }
    

    接着,使用具体的类实现

    public class PettyGirl implements IPettyGirl{
    	private String name;
    	// 书写名字
    	public PettyGirl(String _name){
    		this.name = _name;
    	}
    	// 脸
    	public void goodLooking(){
    		
    	}
    	// 气质
    	public void niceFigure(){
    
    	}
    	// 身材
    	public void niceFigure(){
    	
    	}
    }
    

    对星探定义

    public abstratc class AbstractSearcher{
    	protected IPettyGirl pettyGirl;
    	public AbstractSearcher(IPettyGirl _pettyGirl){
    		this.pettyGirl = _pettyGirl;
    	}
    	// 定义搜索抽象类
    	public abstract void show();
    }
    

    然后对星探进行实现

    public class Searcher extends AbstractSearcher{
    	public Searcher(PettyGirl _pettyGirl){
    		super(_pettyGirl);	// 调用抽象类中的构造方法进行初始化
    	}
    	// 展示
    	public void show(){
    		// 面容
    		super.pettyGirl.goodLooking();	// 调用传入的对象的方法
    		// 身材
    		super.pettyGirl.niceFigure();
    		// 气质
    		super.pettyGirl.greatTemperament();
    	}
    }
    

    接着书写场景

    public class Client{
    	public static void main(String[] args){
    		IPettyGirl yanYan = new PettyGirl("");
    		AbstractSearcher searcher = new Searcher(yanYan);
    		searcher.show();
    	}
    }
    

    接着,要进行更改了。对好看的定义,发生了改变,那么就应该改变PettyGirl中的内容,但是已经在接口中定义了。那么就有问题了。即,接口承担的内容过多导致

    接口隔离原则

    发现问题了。接口被过度的封装了,那么就要进行拆分。

    // 接着对人进行定义
    public interface IGoodBodyGirl{
    	// 面孔
    	public void goodLooking();
    	// 要有身材
    	public void niceFigure();
    }
    public interface IGreatTempramentGirl{
    	// 气质
    	public void greatTemperament();
    }
    

    接着定义标准的

    public class PettyGirl implements IGoodBodyGirl, IGreatTempramentGirl{
    	private String name;
    	// 名字
    	public PettyGirl(String _name){
    		this.name = _name;
    	}
    	// 脸
    	public void goodLooking(){
    		
    	}
    	// 气质
    	public void greatTemperament(){
    
    	}
    	// 身材
    	public void greatTemperament(){
    	}
    }
    

    总结

    接口要承担的功能要最小。即,要满足单一原则。
    接口要高内聚 即 接口中少公布public方法,即,接口要承担的职责要最小,最核心
    举例,要定制图书管理系统

    拆分成两个接口,该接口一个对内,一个对外,保证了安全。
    即,一个接口只服务于一个子模块和业务逻辑

    在无知的道路上缓步前行
  • 相关阅读:
    静态链接与动态链接的区别(转载)
    VC++界面编程之--阴影窗口的实现详解
    win7 vmware 无法使用usb
    如何划分子网,确定子网和掩码的位数?
    华为三层交换机-路由-硬件防火墙的配置
    jquery json ajax -2
    jquery json ajax
    wes开发笔记
    伪类和伪元素
    优化sql语句
  • 原文地址:https://www.cnblogs.com/melovemingming/p/10014525.html
Copyright © 2011-2022 走看看