设计模式
文章平均质量分 58
耿本
严格律己,宽以待人
展开
-
23种设计模式和使用场景介绍
创建型单例模式名词解释全局只包含一个对象。使用场景编码实现工厂模式建造者模式原型模式结构型代理模式桥接模式装饰器模式适配器模式门面模式组合模式享元模式行为型观察者模式模板模式策略模式职责链模式迭代器模式状态模式访问者模式备忘录模式命令模式解释器模式中介模式...原创 2022-01-21 17:21:08 · 666 阅读 · 0 评论 -
面向对象、设计原则、编程规范、重构技巧总结
文章目录面向对象面向对象四大特性面向对象分析、设计与编程基于接口而非实现编程多用组合少用继承贫血模型 VS 充血模型设计原则SOLID原则KISS、YAGNI原则DRY原则LOD 迪米特法则编码规范重构技巧在程序中加入单元测试编写可测试的代码大型重构和小型重构小型重构:编码规范面向对象面向对象四大特性封装、抽象、继承、多态面向对象分析、设计与编程OOA 输入是模糊的需求,输出是流程化的明确的需求OOP 输入是流程化的需求,输出是具体的类和类关系基于接口而非实现编程多用组合少用继承贫原创 2021-11-30 11:09:23 · 111 阅读 · 0 评论 -
设计原则之KISS、DRY,LOD
KISS Keep It Short and Simple.DRY Don’t Repeat YourselfLOD Law of DemeterLOD 迪米特法则不该有直接依赖关系的类之间,不要有依赖;有依赖关系的类之间,尽量只依赖必要的接口(也就是定义中的“有限知识”)关于高内聚,低耦合“高内聚、松耦合”是一个非常重要的设计思想,能够有效提高代码的可读性和可维护性,缩小功能改动导致的代码改动范围。“高内聚”用来指导类本身的设计,“松耦合”用来指导类与类之间依赖关系的设计。所谓高内.原创 2021-11-18 15:31:19 · 89 阅读 · 0 评论 -
设计原则之SOLID
S Single Responsibility PrincipleO Open Closed PrincipleL Liskov Substitution PrincipleI Interface Segregation PrincipleD Dependency Inversion Principle单一职责原则一个类或者模块只负责完成一个职责(或者功能)类中的代码行数、函数或属性过多,会影响代码的可读性和可维护性,我们就需要考虑对类进行拆分;类依赖的其他类过多,或者依赖类的其.原创 2021-11-16 13:54:54 · 90 阅读 · 1 评论 -
面向对象需求分析、方案设计、编码实现
OOAOODOOP当我们接到一个模糊或者具体的需求,一个通用的流程范式是需求分析 -> 方案设计 -> 编码实现需求分析面向对象分析的输入是一个模糊或者具体的需求 ,产出是详细的需求描述。需求分析是一个反复迭代才能出现“结果宝石”的过程,就像解一道算法题一样:有一个最初的实行方案,然后发现问题,解决问题或推翻设想重来。- 举个例子:需求是服务端要添加一个鉴权功能 - 最开始考虑使用用户名口令鉴别身份 - 发现明文容易被中间人抓包获取所以传输时使用hash后的密.原创 2021-11-10 16:57:40 · 388 阅读 · 0 评论 -
关于贫血模型和充血模型
什么是贫血模型?什么是充血模型?为什么说基于贫血模型的传统开发模式违反 OOP?基于贫血模型的传统开发模式既然违反 OOP,那又为什么如此流行?什么情况下我们应该考虑使用基于充血模型的 DDD 开发模式?什么是贫血模型?贫血模型(Anemic Domain Model)是指开发过程中业务的具体方法不在对应的子业务中实现。以MVC举例。当前后端分离时,后端大致结构为RSC:Repository层,用于在和数据库,中间键等交互,属性定义在Entity中,方法实现在Repository。Mo.原创 2021-11-10 10:52:28 · 115 阅读 · 0 评论 -
C++继承时的一些语法规则
自生成方法众所周知,C++类有四种函数如果不显示定义会自动生成:构造函数、析构函数、拷贝构造函数、运算符重载(operator = )。在继承时,很多特殊情况也就出在这四类函数中。继承中派生类内包含了基类内所有方法和属性,只是由于private 权限修饰不能在派生类中直接调用而已。但是基类构造函数明明就算设置成public,在子类对象中也是不能直接使用的。这其实就很容易理解:基类和派生类的构造、析构、拷贝构造甚至都不重名,运算符重载参数也一般直接指定的本对象的类型(如果想直接使用父类的运算符重载函数,不原创 2021-10-29 18:29:55 · 159 阅读 · 0 评论 -
c++ 面向对象之封装、抽象、继承、多态
c++ 面向对象之封装、抽象、继承、多态最近正在学习设计模式,所以总结一下c++为面向对象提供的一些语言特性。作为涉及模式这个专栏的开篇。封装封装其实很容易理解,就是使用类(class)将很多属性封装起来。值得注意的是三种访问权限public:可以类创建的实体访问protected:只允许子类及本类的成员函数访问private:只允许本类的成员函数访问三种继承方式public 继承protected 继承private 继承基类中继承方式子类中p原创 2021-10-25 16:51:45 · 422 阅读 · 0 评论