设计模式
牧羊女说
有马甲线的女程序猿、攻城狮、加班狗~
展开
-
设计模式UML之创建型模式
这些天又把设计模式过了一遍,收获很多。作为回顾,画一画每种模式的UML类图以加深印象。篇幅所限,本篇只限于创建型模式,包括:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。1. 概述设计良好的系统中,一个基本的要求就是高内聚、低耦合。内聚性描述的是一个模块内部组成部分之间相互联系的紧密程度;耦合性指的是一个模块与其他模块之间联系的紧密程度。软件设计的目标应该满足:(1) 模块内部功能紧密而完整,也就是高内聚;(2) 不同模块之间的联系则是简单、直接、可见、灵活,即松耦合。创建型模式抽原创 2020-05-24 19:26:47 · 491 阅读 · 0 评论 -
SOLID软件设计原则之LSP与DIP
SOLID软件设计原则之SRPSOLID软件设计原则之OCP原则人们常常高估了一天能做的事情,却低估了一年能得到的成就。时间倏忽而过,转眼五一小长假只剩下最后一天,放假前列出的清单还有两三件没有完成,无论如何,依然按照计划在最后一天看看书,梳理一下思路,准备迎接5月的紧张工作。软件设计五大原则之前简单整理了两个:单一指责原则(SRP)和开放/封闭原则(OCP),文章链接见本文开头。今天...原创 2020-05-05 18:11:12 · 475 阅读 · 0 评论 -
SOLID软件设计原则之OCP原则
年前匆匆整理了一下SRP原则,即单一职责原则:SOLID软件设计原则之SRP。趁着周末有时间,还一还之前欠下的债。庄子《刻意》篇有云:“形劳而不休则弊,精用而不已则劳,劳则竭”。不停地忙碌容易让人陷入疲倦,忘记为何而出发,适当的闲暇才是思想的温床,也为更好地工作积蓄力量。在项目不是压迫得特别紧张的情况下,周末真的更适合学习和思考,因为有难得的独处和安静来梳理自己的思路。言归正传。当我们还是...原创 2020-04-18 17:09:27 · 458 阅读 · 0 评论 -
设计模式概览——行为型模式
前面两篇文章分别整理了设计模式三大类中的创建型模式和结构型模式:设计模式概览——创建型模式设计模式概览——结构型模式今天我们再来整理一下最后一部分,行为型模式。首先,什么是行为型模式?行为型模式(Behavioral Pattern)是指对在不同对象之间划分责任和算法进行抽象化的设计模式,它不仅关注类和对象的结构,而且重点关注他们之间的相互作用。对于一个系统来说,对象不是...原创 2020-03-07 18:24:54 · 1131 阅读 · 0 评论 -
设计模式概览——结构型模式
上篇文章“设计模式概览——创建型模式”整理了创建型模式的5种类型,今天我们接着来整理一下结构型模式。结构型模式旨在描述如何将类或对象结合在一起形成更大的结构。类结构型模式关注类的组合,一般只存在继承关系和实现关系;对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义另一个类的实例对象,并实现对该对象方法的调用(我们现在开发的系统里就有不少这种应用)。大部分结构型模式都是对象结构型模...原创 2020-02-25 20:29:49 · 486 阅读 · 0 评论 -
设计模式概览——创建型模式
一般认为,存在23种面向对象设计模式,根据每种模式关注的侧重点不同,大致可以分为三大类:创建型模式(5种)、结构性模式(7种)和行为型模式(11种),具体划分如下:创建型模式:简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、单例模式;结构性模式:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式;行为型模式:职责链模式、命令模式、解释器模式、迭代器模式、中介者...原创 2020-02-06 20:47:54 · 437 阅读 · 2 评论 -
SOLID软件设计原则之SRP
本想把SOLID五大原则整理成一篇,放假在即,发现时间有点来不及了,只能分开来写。要构建一个良好的软件系统,整洁的代码和整洁的架构缺一不可。而我们在实际开发过程中,常常无视设计原则,“随心所欲”地编程,当然,好的软件系统需要工程师经验的积累和认知的升级。SOLID原则是面向对象软件设计五大原则(SRP、OCP、LSP、ISP、DIP)的首字母缩写,这些原则会让我们的软件更加健壮和稳定,并能...原创 2020-01-23 17:35:42 · 487 阅读 · 0 评论 -
浅谈面向对象编程相对于面向过程编程的优势
最近在设计一个项目的二期方案。相对于一期过程驱动的实现,二期则更加模糊了过程的边界,需要通过分析业务的当前状态和历史状态去推理上下文,虽然硬件上相对简单了,但对于软件逻辑来说,却提出了更多挑战。所以原来偏重于面向过程风格的实现方法显得有点力不从心,是时候“面向对象”了,呵呵。我们知道,现有的编程范式主要是:面向过程编程、面向对象编程、函数式编程(也有的书上将面向过程编程用结构化编程替代)。函数...原创 2020-01-09 15:49:35 · 4540 阅读 · 0 评论