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方法,即,接口要承担的职责要最小,最核心
    举例,要定制图书管理系统

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

    在无知的道路上缓步前行
  • 相关阅读:
    mysql5.7安装
    win10 安装docker
    快速去水印(win10换图3D工具)
    爬虫---国家食品药品监督管理总局
    食品伙伴网爬虫
    驴妈妈旅游爬虫
    天气预测(CNN)
    ConcurrentDictionary线程不安全么,你难道没疑惑,你难道弄懂了么?
    C#线程篇---线程池如何管理线程(6完结篇)
    C#线程篇---Task(任务)和线程池不得不说的秘密(5)
  • 原文地址:https://www.cnblogs.com/melovemingming/p/10014525.html
Copyright © 2011-2022 走看看