当前位置: 首页 > news >正文

住房和城乡建设部网站住房补贴新冠疫苗接种最新消息

住房和城乡建设部网站住房补贴,新冠疫苗接种最新消息,虚拟主机配置,网站后台数据库备份怎么做一、接口隔离原则 1、原理 客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。如果强迫客户端依赖于那些它们不使用的接口,那么客户端就面临着这个未使用的接口的改变所带来的变更,这无意间导致了客户程序之…

一、接口隔离原则

1、原理

客户端不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。如果强迫客户端依赖于那些它们不使用的接口,那么客户端就面临着这个未使用的接口的改变所带来的变更,这无意间导致了客户程序之间的耦合。换种说法,如果一个客户程序依赖于一个含有它不使用的方法的类,但是其他客户程序确需要使用该方法,那么当其他客户要求这个类改变时,就会影响到这个客户程序。我们希望尽可能地避免这种耦合,因此我们希望分离接口。

2、示例

2.1、迭代一

A类通过接口依赖B类,B类实现接口全部方法,但是A类只使用B类的func1、func2、func3等三个方法;C类通过接口依赖D类,D类实现接口全部方法,C类使用到接口的func1、func4、func5等三个方法。UML类图,如下:

在这里插入图片描述

代码如下:

#include <iostream>
using namespace std;// Interface 接口
class Interface
{
public:virtual void func1();virtual void func2();virtual void func3();virtual void func4();virtual void func5();
};// B 类
class B : public Interface
{
public:void func1(){cout << "B 类实现 func1" << endl;}void func2(){cout << "B 类实现 func2" << endl;}void func3(){cout << "B 类实现 func3" << endl;}void func4(){cout << "B 类实现 func4" << endl;}void func5(){cout << "B 类实现 func5" << endl;}
};// D 类
class D : public Interface
{
public:void func1(){cout << "D 类实现 func1" << endl;}void func2(){cout << "D 类实现 func2" << endl;}void func3(){cout << "D 类实现 func3" << endl;}void func4(){cout << "D 类实现 func4" << endl;}void func5(){cout << "D 类实现 func5" << endl;}
};// 1、A类 通过Interface接口 依赖B类
// 2、A类使用到接口的1、2、3等三个方法
class A {
public:void depend1(Interface &i){i.func1();}void depend2(Interface &i){i.func2();}void depend3(Interface &i){i.func3();}
};// 1、C类 通过Interface接口 依赖D类
// 2、C类使用到接口的1、4、5等三个方法
class C {
public:void depend1(Interface &i){i.func1();}void depend4(Interface &i){i.func4();}void depend5(Interface &i){i.func5();}
};int main()
{B objB;D objD;A objA;C objC;objA.depend1(objB);objA.depend2(objB);objA.depend3(objB);objC.depend1(objD);objC.depend4(objD);objC.depend5(objD);return 0;
}

上面代码存在的问题

  • 接口对于类A与类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法

2.2、迭代二

按照接口分离原则,类A与类C分别于他们需要的接口建立依赖关系,修改后的类图如下:

在这里插入图片描述

3、结论

胖类会导致它们的客户程序之间产生不正常的并且有害的耦合关系。当一个客户程序要求该胖类进行一个改动时,会影响到其他的所有的客户程序。因此、客户程序应该仅仅依赖于它们实际调用的方法。通过把胖类的接口分解为多个特定于客户程序的接口,可以实现这个目标。

http://www.yayakq.cn/news/640385/

相关文章:

  • 做网站要备案吗企业查询信息平台
  • 多语言版本的网站西安短视频制作公司
  • 美橙网站开发免费手游代理平台
  • 网站友情链接怎么样做动漫网站建设意义
  • 苏州网站开发建设公司西安微信网站建设公司
  • 网站保姆-源码下载中天建设集团有限公司山西分公司
  • 动易网站模板中石油第六建设公司网站
  • 高校网站建设管理办法网站栏目设置
  • 淘宝网站做阳光棚多少钱一平米室内设计效果图在哪里找
  • 网站建设费属于文化事业建设费辽宁建设工程信息网新点
  • 移动电子商务平台就是手机网站30条新闻摘抄
  • 长沙公司网站建设新华路网站建设
  • 如何为自己的店铺做网站网站建设与制作企业
  • 永嘉县建设局网站WordPress说说主题
  • 重庆企业型网站建设广西建设职业技术学院网站
  • 河北中凯建设有限公司网站wordpress的后台管理导航菜单
  • 咨询北京国互网网站建设wp怎么做双语网站
  • 营销型企业网站建设的基本原则是wordpress用户创建页面
  • 怎么撤销网站备案南京 网站备案
  • 股票实时交易网站开发台州网站定制
  • 网站域名买卖wordpress怎么修改固定链接
  • html5做宠物饲养网站永春县建设局网站
  • 企业合同管理系统什么叫网站优化
  • 怎么做微信小说网站吗网站 建设开发合同模板
  • 网站开发模块的需求分析浙江新地标建设集团网站
  • 网站开发学什么专业公司网站的具体的建设方案
  • 网站充值页面模板赤峰公司做网站
  • 鄠邑区建设局网站用ps怎么做网站背景
  • 备案通过后 添加网站天元建设集团有限公司邮编
  • 学做网站的学校药品和医疗器械 网站备案