
有趣的设计模式
文章平均质量分 82
Design pattern
谷哥的小弟
历任研发工程师,技术组长,项目经理;曾于2016年、2020年两度荣获CSDN年度十大博客之星。
十载寒冰,难凉热血;多年过去,历经变迁,物是人非。
然而,对于技术的探索和追求从未停歇。
坚持原创,热衷分享,初心未改,继往开来!
展开
-
面向对象编程原则(02)——UML与类图
统一建模语言(Unified Modeling Language,UML)是用来设计软件的可视化建模语言。它的特点是简单、统一、图形化、能表达软件设计中的动态与静态信息。UML 从目标系统的不同角度出发,定义了用例图、类图、对象图、状态图、活动图、时序图、协作图、构件图、部署图等 9 种图。原创 2022-09-02 19:59:21 · 741 阅读 · 0 评论 -
有趣的设计模式——适配器模式让两脚插头也能使用三孔插板
众所周知,我们国家的生活用电的电压是220V而笔记本电脑、手机等电子设备的工作压没有这么高。为了使笔记本、手机等设备可以使用220V的生活用电就需要使用电源适配器(AC Adapter);也就是人们常说的充电器或变压器。有了这个电源适配器,原本不能直接工作的生活用电和笔记本电脑就可以兼容了。原创 2023-09-15 22:15:00 · 943 阅读 · 0 评论 -
面向对象编程原则(10)——总结
在软件开发中使用面向对象设计原则可以提高软件的可维护性和可复用性,以便设计出兼具良好的可维护性和可复用性的软件系统,实现可维护性复用的目标。原创 2022-09-08 22:13:09 · 294 阅读 · 0 评论 -
面向对象编程原则(09)——迪米特法则
迪米特法则来自于1987年美国东北大学(NortheasternUniversity)的一个名为 Demeter的研究项目。迪米特法则(Law of Demeter,LoD)又称为最少知识原则(LeastKnowledge Principle,LKP)。原创 2022-09-08 22:10:09 · 576 阅读 · 0 评论 -
面向对象编程原则(08)——合成复用原则
合成复用原则指的是在一个新的对象里通过关联关系(包括组合关系和聚合关系)来使用一些已有的对象,使之成为新对象的一部分,新对象通过委派调用已有对象的方法达到复用功能的目的。简而言之,在复用时要尽量使用组合/聚合关系(关联关系),而尽量少使用继承。原创 2022-09-08 22:04:30 · 837 阅读 · 0 评论 -
面向对象编程原则(07)——接口隔离原则
根据接口隔离原则,一个接口太大时需要将它分割成一些更细小的接口;使用该接口的客户端仅需知道与之相关的方法即可。每一个接口应该承担相对独立的角色,只干该干的事。这里的"接口"往往有两种不同的含义:一种是指一个类型所具有的方法特征的集合,仅仅是一种逻辑上的抽象;另外一种是指某种语言具体的“接口”,它有严格的定义和结构比如Java中的interface。对于这两种不同的含义,ISP的表达方式以及含义也有所不同。原创 2022-09-08 20:26:16 · 467 阅读 · 0 评论 -
面向对象编程原则(06)——依赖倒转原则
依赖倒转原则(Dependence Inversion Principle,DIP)是RobertCMartin在1996年为C++Reporter所写的专栏EngineeringNotebook的第三篇,后来加入到他在2002年出版的经典著作《Agile Software Development,Principles,Patterns,and Practices》一书中。如果说开闭原则是面向对象设计的目标,那么依赖倒转原则就是面向对象设计的主要实现机制之一,它是系统抽象化的具体实现。原创 2022-09-08 20:22:36 · 2070 阅读 · 0 评论 -
面向对象编程原则(05)——里氏替换原则
里氏替换原则(Liskov Substitution Principle,LSP)由2008年图灵奖得主、美国第一位计算机科学女博士、麻省理工学院的Barbara Liskov(芭芭拉·利斯科夫)教授和卡内基·梅隆大学的JeannetteWing教授于1994年提出;所以,里氏替换原则以BarbaraLiskov教授的姓氏命名。原创 2022-09-06 21:27:49 · 1041 阅读 · 0 评论 -
面向对象编程原则(04)——开闭原则
开闭原则(Open-Closed Principle,OCP)由BertrandMeyer于1988年提出,它是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。该原则定义如下:软件实体应当对扩展开放,对修改关闭。原创 2022-09-04 23:39:16 · 959 阅读 · 0 评论 -
面向对象编程原则(03)——单一职责原则
单一职责原则(Single Responsibility Principle, SRP)是最简单的面向对象设计原则;它常用于控制类的粒度大小。该原则定义如下:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中。原创 2022-09-04 13:11:47 · 595 阅读 · 0 评论 -
面向对象编程原则(01)——概述
在软件产品开发过程中软件的可维护性(Maintainability)和可复用性(Reusability)是两个非常重要的用于衡量软件质量的属性。软件的可维护性是指软件能够被理解、修改、适应及扩展的难易程度;软件的可复用性是指软件能够被重复使用的难易程度。面向对象设计的目标之一在于支持可维护性复用。一方面需要实现设计方案或者源代码的复用;另一方面要确保系统能够易于扩展和修改,具有良好的可维护性。面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则原创 2022-09-02 19:27:02 · 334 阅读 · 0 评论 -
有趣的设计模式——解救抓狂的商场收银员
商场中经常搞各种促销活动;例如:满200返50,打9折,会员8.8折,冲100送20等等。这些商业活动的背后商品价格的计算方式各不相同,种类繁复;着实让商场的收银员头痛不已。为了应对类似的情况,我们的程序中或许要写很多的if...else进行分支判断造成代码臃肿、难以维护。此时,我们可用策略模式解救抓狂的商场收银员。...原创 2022-08-10 20:54:05 · 611 阅读 · 0 评论 -
有趣的设计模式——烟火气息中的装饰模式
装饰模式定义:动态地给一个对象添加额外的职责和功能。也就是说:我们可以在不使用继承、不改变原有结构的基础上扩展新的内容。举个例子,我们都担心摔碎手机屏幕,所以我们可以在手机的外表面裹一层材料(比如钢化膜,手机套)从而使得手机具有了抗摔的新功能;并且手机原本的功能(打电话,拍照,上网)并没有受到任何影响。嗯哼,看完这个小例子,我们来瞅瞅装饰模式中的四个角色:...原创 2022-08-05 22:46:22 · 519 阅读 · 0 评论 -
有趣的设计模式——单例模式
对于懒汉式单例模式,我们可以这样理解:该单例类非常懒,只有在自身需要的时候才会行动,从来不知道及早做好准备。它在需要对象的时候,才判断是否已有对象,如果没有就立即创建一个对象,然后返回;如果已有对象就不再创建,立即返回。原创 2019-05-30 10:31:41 · 964 阅读 · 1 评论 -
从狡猾的房产中介来看动态代理
代理模式(Proxy Pattern)是面向对象中一种非常常见的设计模式。其实,不单是在软件开发领域,在我们的日常生活中对于代理也时常可见。比如:房东要将自家的房租出售,于是到房地产中介公司找一个代理,由他来帮自己完成销售房屋,签订合同等等事宜。在此,就以该生活场景为蓝本介绍Java的代理模式。一般而言,代理技术可分为:静态代理和动态代理;我们先来看静态代理。原创 2017-09-05 10:38:38 · 3668 阅读 · 3 评论 -
有趣的设计模式——站在富士康的厂房里看建造者设计模式
建造者模式定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。看到这个文绉绉的定义,多半是一头雾水。没事儿,咋们用大白话来说:建造者模式是创建复杂对象的模型,它将构建的过程和所用的部件解耦从而使得构建过程和所用部件分离开。举个例子:很多手机厂商与富士康合作生产手机,而且手机厂商对于手机的CPU,主板,内存,屏幕的要求各不相同。对于富士康而言,它需要去了解CPU的性能,内存的大小,屏幕的分辨率这些部件的详细的技术信息么?不需要,作为代工厂商它不需要深入了解部件,它所关注的是:拿原创 2017-09-06 17:12:19 · 3579 阅读 · 11 评论 -
有趣的设计模式——从一杯奶茶品味装饰模式
装饰模式定义:动态地给一个对象添加额外的职责和功能。也就是说:我们可以在不使用继承、不改变原有结构的基础上扩展新的内容。举个例子,我们都担心摔碎手机屏幕,所以我们可以在手机的外表面裹一层材料(比如钢化膜,手机套)从而使得手机具有了抗摔的新功能;并且手机原本的功能(打电话,拍照,上网)并没有受到任何影响。嗯哼,看完这个小例子,我们来瞅瞅装饰模式中的四个角色:原创 2017-09-12 16:36:09 · 3288 阅读 · 12 评论 -
有趣的设计模式——从手机的制造过程学习工厂模式
前不久,在写工厂设计模式时,我还是期望用一个例子来阐述它的原理和应用。可是,当我写完之后才发现:单凭一个示例很难梳理出工厂模式。换句话说,就是之前的套路不好使了。嗯哼,既然原来的方式行不通,那就另辟蹊径:我们从手工打造开始讲起,一步步演变过度到现在的工厂设计模式。我想能看到这篇博客的人,都会有一部属于自己的手机;它出现于你的裤兜,办公桌,写字台,饭桌,枕头边;当然更多的时候它就在你手掌。既然,大家对这个玩意这么熟悉,我们就用生产手机为例子来学习和了解工厂设计模式。原创 2017-09-14 10:23:42 · 4395 阅读 · 7 评论 -
有趣的设计模式——微信公众号中蕴藏的观察者模式
好嘞,就从微信公众号入手!平常我们关注一个微信公众号,当它推送新内容时,手机界面上就会出现一个红色的小点提醒我们查看详细内容。换句话说:我们订阅了公众号,当它有新消息时就会自动告知我们。也就是说:我们自己是观察者,在观察微信公众号,微信公众号就是被观察者。原创 2017-09-19 09:27:24 · 5203 阅读 · 7 评论