首页 > 其他分享 >软件设计模式之外观设计模式(Darren)

软件设计模式之外观设计模式(Darren)

时间:2022-12-05 15:05:05浏览次数:44  
标签:大家 逻辑 软件设计 Darren 模式 设计模式 我们



先回顾一下之前我们已经讲过的设计模式:

简单工厂模式,策略模式,单一职责原则,开放封闭原则,依赖倒转原则,装饰模式,抽象工厂模式,模板方法模式,迪米特法则;


今天我们来讲一下外观模式,这个在昨天讲迪米特法则的时候我们已经提到过,其实外观模式就是迪米特法则在实际中的运用。


多余的例子我就不不说了,就讲一下我们的三层设计模式吧。

三层模式就是典型的外观模式:


先贴出外观模式的定义:

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得子系统更加容易使用。


软件设计模式之外观设计模式(Darren)_作业


不管这个结构图如何,让我们先来回忆一下我们学习过的3层模式,3层模式是我们软件开发中常用的框架模式,分为表示层,业务逻辑层,数据处理层。

那么为什么我们要用这么多分层呢,原因只有一个,就是为了减少代码耦合度。


想象一下你将一大堆的数据库操作和复杂的业务逻辑,在和界面混杂在一起,你会怎样,即使在前期开发中你感觉还不错,但是后期的维护呢,如果达不到人码合一,我估计修改的人肯定会暗暗骂你,真尼玛坑爹呀!


有了3层模式,表示层只负责和界面上的交互操作,复杂的业务逻辑交给业务逻辑层去处理,相应的数据在进过业务逻辑层之后在传递给数据访问层,这样感觉整个思路非常的清晰,感觉界面欠佳,我该表示层,感觉需要添加业务逻辑,我就直接操作业务逻辑层,这样也满足我们的各大软件设计原则,给软件的后续维护带来了方便,所以大家在编写代码的时候,一定要整理好自己的思路,不要将复杂的代码混杂在一起,否则有一天你真的会被骂坑爹啊



编程是一种技术,更是一种艺术。艺术的底层就是我们现在看的这些设计模式和设计原则。如果你不想当一个码农,而是想真正的当一个艺术家,那么请和Darren一起来从底层来学习这些基本工,编码让生活更精彩。



什么都会变,唯有这些底层的知识不会变,所以你现在投资时间来学设计模式,不敢说绝对对你有帮助,但是我想他会改变你对编码的看法,甚至对生活的看法,最近再听猫扑网络电台,感觉很不错,谁说程序员只能整天敲代码,我们也可以找时间去接触一下外面的新奇事物,听听大家都在说什么,听听大家背后的故事,我一直都以聆听者的态度去面对这个社会,因为我知道,在你没有成功之前,没有人愿意是你的聆听者,或者你说的话根本起不到什么影响力,所以在没有成功之前我选择去聆听,听听大家的想法,重中揣摩出新的思想,这样就为我的成功又积攒了一块砖,不要怕现在失去什么,我只看好我以后能得到什么!

以上纯属个人观点,有不同观点的还请多多包涵...

哈哈,今天的设计模式比较简单,顺便聊聊Darren对编码的看法以及对人生的看法,希望大家以后能多多给Darren提问题,当然大家有好的想法和建议也可以提出来,大家一起讨论。我想和各位成为朋友。


天色已晚,大家都洗洗睡吧,新的一天,让我们用满怀的激情去迎接它...




标签:大家,逻辑,软件设计,Darren,模式,设计模式,我们
From: https://blog.51cto.com/u_11295556/5912190

相关文章

  • Web前端开发中的MCRV模式
     摘要针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性、扩展性和适应性差等问题,本文尝试以MVC思想为基础,结合Web前端开发中“内容......
  • Selenium4+Python3系列(十) - Page Object设计模式
    前言​​PageObject(PO)​​​模式,是​​Selenium​​实战中最为流行,并且被自动化测试同学所熟悉和推崇的一种设计模式之一。在设计测试时,把页面元素定位和元素操作方法按照......
  • 22.状态模式
    [实验任务一]:银行账户用Java代码模拟实现课堂上的“银行账户”的实例,要求编写客户端测试代码模拟用户存款和取款,注意账户对象状态和行为的变化。代码Java代码Account.j......
  • C++ IMPL模式解析(下)
    二进制兼容在上一章结尾处提到了二进制兼容的概念,这里先说说二进制兼容的问题。为什么是二进制兼容简单说,就是我的可执行程序调用你的动态库(so/dll),若动态库发生改动,我......
  • 设计模式之代理模式学习分享[Darren]
    很高兴又在每晚的这个时候和博友有分享今天的学习成果了,感谢大家一直对Darren的支持,也希望各位博友们能将自己的好文章分享出来,在此Darren只是抛砖,希望大家不要吝啬自己的学......
  • VK1625是一种64*8点 LCD液晶段码屏显示驱动控制电路(IC/芯片),可兼容替代市面1625,具省电
    产品品牌:永嘉微电/VINKA产品型号:VK1625封装形式:LQFP100/QFP100/DICE概述:VK1625是一个点阵式存储映射的LCD驱动器,可支持最大512点(64EGx8COM)的LCD屏。单片机可通过3/4线串......
  • 单例模式常用模板类
    单例模式可以确保软件生命周期内仅有一个实例化对象,方便各处便利调用。单例模板类申明定义如下:template<typenameT>classSingleTon{public:staticT&getIns......
  • 21.观察者模式
    [实验任务一]:股票提醒当股票的价格上涨或下降5%时,会通知持有该股票的股民,当股民听到价格上涨的消息时会买股票,当价格下降时会大哭一场。类图代码JavaClient.javapac......
  • C++ IMPL模式解析
    https://blog.csdn.net/myw31415926/article/details/127722899抛砖引玉试想一个问题,如果有一套收发数据的网络接口,需要提供给其他同事或厂家使用,包含头文件和动态库,假设......
  • 三、CSS基础-元素显示模式 行元素,块元素,行内块元素
    三、CSS基础-元素显示模式目标:能够认识三种常见的元素显示模式****,并通过代码实现不同元素显示模式的转换1.块级元素2.行内元素3.行内块元素4.元素显示模式......