专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

面向对象设计原则有哪些(常用六大面向对象设计原则介绍)

来源:小嗨整编  作者:小嗨  发布时间:2023-02-16 06:31
摘要:面向对象设计原则有哪些(常用的六大面向对象设计原则介绍)面向对象设计原则:,单一职责原则、开放关闭原则、里式替换原则、依赖倒置原则、接口隔离原则、迪米特法则、组合复用原则;...

依赖倒置原则

如果说实现开闭原则的关键事抽象化,是面向对象设计的目标的话,依赖倒置原则就是这个面向对象设计的主要机制。

定义 :

抽象不应该依赖于细节,细节应当依赖于抽象。换言之,要针对接口编程,而不是针对实现编程。

为什么要实现倒置?这也是我们看这个定义的时候产生的一些问题,那么我们就来说说。

简单的来说,传统的过程性系统的设计办法倾向于使高层次的模块依赖于低层次的模块,抽象层依赖于具体层次,倒置原则是要把这个错误的依赖关系倒转过来,这就是依赖倒置原则的由来。也是为什么要进行依赖倒置。

面向对象设计原则有哪些(常用的六大面向对象设计原则介绍)

依赖倒置原则的实现方法

依赖倒置原则的目的是通过要面向接口的编程来降低类间的耦合性,所以我们在实际编程中只要遵循以下4点,就能在项目中满足这个规则:

  • 每个类尽量提供接口或抽象类,或者两者都具备。

  • 变量的声明类型尽量是接口或者是抽象类。

  • 任何类都不应该从具体类派生。

  • 使用继承时尽量遵循里氏替换原则。

下面我们通过一些代码实例(商品售卖)来进行理解:

class BeijingShop implements Shop{

public String sell(){

return "北京商店售卖:北京烤鸭,稻香村月饼";

}

}

class ShanDongShop implements Shop{

@Override

public String sell() {

return "山东商店售卖:德州扒鸡,烟台苹果";

}

}

//如果说顾客去购买商品

class Customer{

public void shopping(ShanDongShop shop){

//购物

System.out.println(shop.sell());

}

//这是在山东商店购买,如果说是在北京商店购买就会这样

class Customer{

public void shopping(BeijingShop shop) {

//购物

System.out.println(shop.sell());

}

这也是这种设计的存在缺陷,顾客每更换一家商店,都要修改一次代码,这明显违背了开闭原则。存在以上缺点的原因是:顾客类设计时同具体的商店类绑定了,这违背了依赖倒置原则。解决方式我们可以定义一个共同的接口Shop,就可以这样了。

public class TestSale {

public static void main(String[] args) {

Customer c = new Customer();

System.out.println("---顾客购买商品如下---");

c.shopping(new ShanDongShop());

c.shopping(new BeijingShop());

}

}

interface Shop{

//售卖方法

public String sell();

}

class BeijingShop implements Shop{

public String sell(){

return "北京商店售卖:北京烤鸭,稻香村月饼";

}

}

class ShanDongShop implements Shop{

@Override

public String sell() {

return "山东商店售卖:德州扒鸡,烟台苹果";

}

}

class Customer{

public void shopping(Shop shop) {

System.out.println(shop.sell());//购物

}

}

程序运行结果


本文地址:网络百科频道 https://www.eeeoo.cn/wangluo/903083_3.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!

共3页 1 2 3 当前是最后一页

网络百科
小编:小嗨整编
相关文章相关阅读
  • 设计教程资源网(设计教程网站有哪些)?

    设计教程资源网(设计教程网站有哪些)?

    设计教程资源网(设计教程网站有哪些)?随着互联网的快速发展,设计行业也日益繁荣。越来越多的设计师和设计爱好者希望在网上找到优质的设计教程资源,以提高自己的设计水平。本文将为您介绍一些国内优秀的设计教程资源网站,助您在设计道路上更进一步。设计...

  • 机械设计软件有哪些软件(机械设计软件哪个好)?

    机械设计软件有哪些软件(机械设计软件哪个好)?

    机械设计软件有哪些软件(机械设计软件哪个好)?机械设计常用的三大软件分别是CAD、SW、UG,下面带来十款好用的机械设计软件。机械设计软件推荐一、SolidWorksSolidWorks软件是世界上第一个基于Windows开发的三维CAD系...

  • 建筑设计软件有哪些软件(建筑设计软件哪个好用)?

    建筑设计软件有哪些软件(建筑设计软件哪个好用)?

    建筑设计软件有哪些软件(建筑设计软件哪个好用)?在建筑效果图制作过程中,为了追求精细化和高效率,设计师们通常会使用多种软件协同作业。本文将介绍六款好用的建筑设计软件。每款软件都有自己的擅长之处。结合各自优势来完成效果图中不同环节的制作。第一...

  • 包装设计软件免费版(包装设计软件哪个好用)?

    包装设计软件免费版(包装设计软件哪个好用)?

    包装设计软件免费版(包装设计软件哪个好用)?小白如何一键做包装设计?下面给大家介绍一款非常好用的包装设计工具——ArtiosCAD,简单易上手!ArtiosCAD是用于设计包装的全球最流行的结构设计软件。 ArtiosCAD拥有专为包装设计...

  • 三维设计软件有哪些(三维设计软件哪个好用)?

    三维设计软件有哪些(三维设计软件哪个好用)?

    三维设计软件有哪些(三维设计软件哪个好用)?三维设计软件种类繁多,功能各异,很难说谁家最强,这取决于具体的使用场景和需求。以下是一些比较受欢迎的三维设计软件:一、SolidWorksSolidWorks是一款非常受欢迎的三维CAD软件,广泛...

  • 我的世界房子设计图教程(我的世界房子设计图简单漂亮)

    我的世界房子设计图教程(我的世界房子设计图简单漂亮)

    我的世界房子设计图教程(我的世界房子设计图简单漂亮)玩过MC我的世界的朋友都知道,搭建属于一个自己的生存小屋是必不可少的,如果你还只是停留在挖个地洞带个床的阶段,不妨看看这篇文章,这篇文章将教会你如何搭建一个简单实用的生存小屋!第一步,先打...

  • 平面设计用什么软件好(平面设计5大软件)?

    平面设计用什么软件好(平面设计5大软件)?

    平面设计用什么软件好(平面设计5大软件)?下面推荐五款备受好评的平面广告设计软件,易于使用!1.即时设计即时设计是国内一款UI设计工具,像PC端的网页,移动端的App、小程序页面,都可以通过即时设计高效完成。现在,也有越来越多的设计师,用即...

  • pcb设计软件有哪些(pcb设计软件哪个好)?

    pcb设计软件有哪些(pcb设计软件哪个好)?

    pcb设计软件有哪些(pcb设计软件哪个好)?随着电子科技的迅速发展,印刷电路板(PCB)设计成为电子设备制造的至关重要的环节。高效且精确的PCB设计软件能够有效帮助工程师进行电路设计、布局布线及优化分析等工作。以下介绍一些目前市场上广受欢...

  • 周排行
  • 月排行
  • 年排行

精彩推荐