分享好友 最新动态首页 最新动态分类 切换频道
java设计模式、框架、架构、平台之间的关系
2024-12-26 15:48

     设计模式的六大原则

1、开闭原则(Open Close Principle)

开闭原则就是说对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。所以一句话概括就是:为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

2、里氏代换原则(Liskov Substitution Principle)

里氏代换原则(Liskov Substitution Principle LSP)面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。 LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用,而衍生类也能够在基类的基础上增加新的行为。里氏代换原则是对“开-闭”原则的补充。实现“开-闭”原则的关键步骤就是抽象化。而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。—— From Baidu 百科

3、依赖倒转原则(Dependence Inversion Principle)

这个是开闭原则的基础,具体内容:真对接口编程,依赖于抽象而不依赖于具体。

4、接口隔离原则(Interface Segregation Principle)

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。还是一个降低类之间的耦合度的意思,从这儿我们看出,其实设计模式就是一个软件的设计思想,从大型软件架构出发,为了升级和维护方便。所以上文中多次出现:降低依赖,降低耦合。

5、迪米特法则(最少知道原则)(Demeter Principle)

为什么叫最少知道原则,就是说:一个实体应当尽量少的与其他实体之间发生相互作用,使得系统功能模块相对独立。

6、合成复用原则(Composite Reuse Principle)

原则是尽量使用合成/聚合的方式,而不是使用继承。

 

(二)框架的基础知识

 

(1):框架是什么?

java框架:三大框架详解,其发展过程及掌握的Java技术慨括-点击打开链接

简单点说:框架就是能完成一定功能的半成品软件,现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java Web应用程序架构了。

就其本质而言,框架是一个软件,而且是一个半成品的软件。所谓半成品,就是还不能完全实现用户需要的功能,框架只是实现用户需要的功能的一部分,还需要进一步加工,才能成为一个满足用户需要的、完整的软件。因此框架级的软件,它的主要客户是开发人员,而不是最终用户。

有些朋友会想,既然框架只是个半成品,那何必要去学习和使用框架呢?学习成本也不算小,那就是因为框架能完成一定的功能,也就是这“框架已经完成的一定的功能”在吸引着开发人员,让大家投入去学习和使用框架。

(2):框架能干什么?

能完成一定功能,加快应用开发进度

        由于框架完成了一定的功能,而且通常是一些基础的、有难度的、通用的功能,这就避免我们在应用开发的时候完全从头开始,而是在框架已有的功能之上继续开发,也就是说会复用框架的功能,从而加快应用的开发进度。

给我们一个精良的程序架构

        框架定义了应用的整体结构,包括类和对象的分割,各部分的主要责任,类和对象怎么协作,以及控制流程等等。现在Java界大多数流行的框架,大都出自大师手笔,设计都很精良。基于这样的框架来开发,一般会遵循框架已经规划好的结构来进行开发,从而让我们开发的应用程序的结构也相对变得精良了。

 

(3):对框架的理解

基于框架来开发,事情还是那些事情,只是看谁做的问题

对于应用程序和框架的关系,可以用一个图来简单描述一下,如图1所示:

        如果没有框架,那么客户要求的所有功能都由开发人员自己来开发,没问题,同样可以实现用户要求的功能,只是开发人员的工作多点。

        如果有了框架,框架本身完成了一定的功能,那么框架已有的功能,开发人员就可以不做了,开发人员只需要完成框架没有的功能,最后同样是完成客户要求的所有功能,但是开发人员的工作就减少了。

        也就是说,基于框架来开发,软件要完成的功能并没有变化,还是客户要求的所有功能,也就是“事情还是那些事情”的意思。但是有了框架过后,框架完成了一部分功能,然后开发人员再完成一部分功能,最后由框架和开发人员合起来完成了整个软件的功能,也就是看这些功能“由谁做”的问题。


 

(三)架构

         软件体系结构通常被称为架构,指可以预制和可重构的软件框架结构。架构尚处在发展期,对于其定义,学术界尚未形成一个统一的意见,而不同角度的视点也会造成软件体系结构的不同理解,以下是一些主流的标准观点。
  ANSI/IEEE 610.12-1990软件工程标准词汇对于体系结构定义是:“体系架构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构以及知道上述内容设计与演化的原理(principle)”。
  Mary Shaw和David Garlan认为软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各个方面的组织和全局控制结构,通信协议、同步,数据存储,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案之间进行选择。Garlan & Shaw模型[1]的基本思想是:软件体系结构={构件(component),连接件(connector),约束(constrain)}.其中构件可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。连接件可以是过程调用、管道、远程过程调用(RPC)等,用于表示构件之间的相互作用。约束一般为对象连接时的规则,或指明构件连接的形式和条件,例如,上层构件可要求下层构件的服务,反之不行;两对象不得递规地发送消息;代码复制迁移的一致性约束;什么条件下此种连接无效等。
  关于架构的定义还有很多其他观点,比如Bass定义、Booch & Rumbaugh &Jacobson定义、Perry & Wolf模型[7]、Boehm模型等等,虽然各种定义关键架构的角度不同,研究对象也略有侧重,但其核心的内容都是软件系统的结构,其中以Garlan & Shaw模型为代表,强调了体系结构的基本要素是构件、连接件及其约束(或者连接语义),这些定义大部分是从构造的角度来甚至软件体系结构,而IEEE的定义不仅强调了系统的基本组成,同时强调了体系结构的环境即和外界的交互。

最新文章
羞羞漫画免费观看——热门漫画实时更新,精彩内容看不停
在当今数字化的时代,漫画作为一种受欢迎的娱乐形式,吸引了无数读者的喜爱。而对于喜欢漫画的人来说,能够免费观看最新、最热门的漫画内容是一种极大的享受。今天,我将为大家介绍一款提供免费观看热门漫画的应用程序,让你随时随地都能沉
Vivo手机如何解锁Bootloader
如何解锁vivo手机的bootloader:详细步骤与注意事项在智能手机的世界里,bootloader(bl)解锁是进行定制和深度修改的第一步。对于vivo手机用户来说,解锁bootloader可以带来许多好处,比如刷入第三方rom、获取权限以及解锁更多隐藏功能。
科技早报|微信、速卖通被列入“恶名市场”名单 特斯拉指控美证监会“骚扰”
凤凰网科技讯 北京时间2月18日消息,昨夜今晨,科技圈都发生了哪些故事,以下是要闻回顾:先关注特斯拉:调查个没完 特斯拉、马斯克指控美证监会“无休止”骚扰特斯拉公司及其CEO埃隆马斯克(Elon Musk)周四指控美国证券交易委员会(SEC)为了
福利,非常全的"Python爬虫"学习资料(免费)
Python 火到不行,从数据爬取、数据分析、到 AI ,都有受用的地方,今天更新一波 Python 的爬虫学习资料,都是排行榜上的热门好书。在这里还是要推荐下我自己建的Python开发学习群:301056051,群里都是学Pyt
设备制造新篇章:设备生产ERP系统的关键作用
一、生产计划与排程方面的关键作用需求预测与计划制定在设备制造企业中,准确的需求预测是生产计划的基础。设备生产ERP系统能够整合市场需求信息、销售订单数据以及历史生产数据等多方面的资源。例如,通过分析过往设备的销售情况、市场趋
负压封闭引流术(VSD)的应用
病例分享1病例分享2那么什么是“VSD”呢?用VSD材料+半透膜+三通接管+负压吸引器进行负压吸引的技术。定义:负压封闭引流技术(VSD)是用内含有引流管的聚乙烯酒精水化海藻盐泡沫辅料来覆盖或者填充皮肤、软组织缺损的创面,再用生物半透膜
讶然:济南套花呗信用购当面支持线下真香,2024年必看!
济南当面套VISA境外卡花呗白条分付【微电:166 7513 1138】全天在线欢迎打电话,当面办理安全靠谱!一说起京东白条,脑海里第一条记忆神经就会跳出来东哥,东哥是热搜的常客,是我的偶像,一个站在食物链顶端的男人,在使用京东白条的过程中
通过 API 部署模型(全代码)
模型部署可以为您创建专属的推理服务。本文介绍了模型部署的基本概念、使用方法和配置指南,帮助您为大语言模型配置专属的模型推理服务。简单来说,是指将大模型运行在专属的计算资源上,使模型在独立的运行环境中高效、可靠地运行,并为业
香港搜狗搜索推广怎么做
在数字化时代的浪潮下,香港的商业市场日益依赖多元化的广告推广手段。在这个背景下,搜狗搜索推广逐渐成为企业品牌宣传和用户获取不可或缺的工具。作为一家专注于广告开户及代运营的公司,遵义腾浪科技有限公司为客户提供全面的广告推广服
露营地服务朋友圈广告开户入口网址
露营地服务是一种新兴的旅游方式,它将自然与生活完美结合,让人们在享受大自然的同时,也能体验到独特的露营生活。随着露营地服务的普及,越来越多的商家开始利用朋友圈广告来推广自己的露营地服务。那么,如何在朋友圈广告中推广露营地服
相关文章
推荐文章
发表评论
0评