![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
hopegrace
取乎其上,得乎其中;取乎其中,得乎其下;取乎其下,则无所得矣!
展开
-
面向对象的分析设计模式及方法论
1、面向对象的分析模式在分析系统需求中,仅仅依靠分析报告还不够的,还需要在此基础上充分挖掘系统内部规律,这就是分析模式。模式,是经验的积累与抽象表示,是一种解决特定问题的思路,已经被应用到实际的context中并被验证是有效的,完全有可能再被应用到其它的context中。它是抽象的。分析模式与业务领域相关,不同的业务领域使用不同的分析模式。类似的业务领域可以使用相同的分析模式。分析...原创 2020-02-11 16:41:56 · 1408 阅读 · 0 评论 -
DIP介绍和讨论
一、DIP定义定义:DIP(DIP-DependencyInversionPrinciple),即依赖倒置原则1、高层模块不应该依赖于低层模块,二者都应该依赖于抽象。[1]2、抽象不应该依赖于细节,细节应该依赖于抽象,要针对接口编程,不要针对实现编程。依赖:在程序设计中,如果一个模块a使用/调用了另一个模块b,我们称模块a依赖模块b。高层模块与低层模块:往往...原创 2020-02-03 10:30:19 · 2290 阅读 · 0 评论 -
类创建型模式之工厂方法(Factory Method)
类创建型模式之工厂方法(FactoryMethod)一、创建型模式概述创建型模式(CreationalPattern)抽象了实例化过程,它们帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式分为类的创建模式和对象的创建模式两种:类的创建模式:类的创建模式使用继承关系,把类的创建延迟到子类,从而封装了客户端将得到哪些具体类的信息,并且隐藏了这些...原创 2020-02-03 10:25:15 · 318 阅读 · 0 评论 -
6、工厂方法(Factory Method)举例:运用在建立迷宫中
工厂方法举例:运用在建立迷宫中如下代码所示为运用了工厂模式之前和运用了工厂模式之后的情况。可以看出,运用工厂模式之前,这个函数对迷宫的布局进行硬编码,不灵活。假设想在一个包含施了魔法的迷宫的新游戏中重用一个已有的迷宫布局,而施了魔法的迷宫游戏有新的构件,如DoorNeedingSpell(一扇仅随着一个咒语才能被锁上和打开的门);以及EnchantedRoom(一个可以有不寻...原创 2020-02-02 17:52:52 · 533 阅读 · 0 评论 -
7、工厂方法(Factory Method):运用在前面画圆的例子中
目录一、要求1二、工厂方法思想:1三、具体程序体现:11、定义产品及其分支12、定义工厂及其分支23、工厂实现(其它产品实现,由于篇幅关系,此不写出,上一次报告中已有)44、按钮相关6一、要求应用工厂方法,实现前面的画圆操作。二、工厂方法思想:通过定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类。三、具...原创 2020-02-02 17:51:29 · 167 阅读 · 0 评论 -
创建型模式简介
创建型模式简介一、单件模式,SINGLETON,对象创建模式保证一个类只有一个实例,并提供一个访问它的全局访问点。classSingleton{public:staticSingleton*Instance();protected:Singleton();private:staticSingleton*_instance;};S...原创 2020-01-08 17:00:18 · 292 阅读 · 0 评论 -
结构型模式简介
结构型模式简介结构型模式涉及到如何组合类和对象以获得更大的结构。结构型类模式采用继承机制来组合接口或实现;结构型对象模式描述如何对一组对象进行组合从而实现新功能的一些方法。一、适配器,ADAPTER,类对象结构型模式将一个类的接口转换成客户希望的另外一个接口。适用性:系统需要使用现有的类,而此类的接口不符合系统的需要。想要建立一个可以重复使用的类,用于与...原创 2020-01-08 16:58:58 · 1418 阅读 · 0 评论 -
行为型模式简介
行为型模式简介行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成单个对象无法完成的任务。一、职责链,CHAINOFRESPONSIBILITY,对象行为型模式使多个对象都有机会处理请求,从而避免请求的发送者和接收着之间的耦合关系。将这些对象生成一条链,并沿着这条链传递该消息,直到有一个对象处理它为止。适用性有多个对...原创 2020-01-08 16:56:49 · 3427 阅读 · 2 评论 -
设计模式基本原则
设计模式基本原则单一职责原则一个类应该仅有一个引起其变化的原因开放封闭原则软件实体(类、模块、函数等)应该可以扩展,但不可以修改。即:开放扩展性,封闭修改性依赖倒转原则高层模块不应该依赖于低层模块,两者都应该依赖于抽象抽象不能依赖于细节,细节依赖于抽象在软件中,如果将父类替换成子类,其行为不应该变化。针对抽象编程,而不是针对细节编程迪米特法则(最小知识原则)...原创 2020-01-07 11:09:44 · 134 阅读 · 0 评论 -
抽象工厂,工厂方法,简单工厂对比
抽象工厂,工厂方法,简单工厂对比创建型类模式将一个对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个对象中。创建型:使得动态创建对象更灵活结构型:添加第三方类降低耦合行为型:满足对象之间的动态行为特征一、工厂方法-创建型类模式http://blog.163.com/zhoumhan_0351/blog/static/3995422720104277410773...原创 2020-01-07 11:08:54 · 127 阅读 · 0 评论 -
Strategy-策略模式
Strategy-策略模式学习了设计后,我觉得:设计模式中的许多同类型模式,其描述都是十分相像的,实现起来也是十分类似的。而其一般主要的区别是在解决实际问题中的目的不同,而各有偏重。而C++中设计模式的实现一般也就那几种方法:通过虚函数实现多态,通过继承和组合实现接口和功能的复用等,通过抽象而成独立的类,而实现弱耦合或名个类独立的变化,而通过一个引用或指针,来实现消息的传递通信。行为型模式...原创 2020-01-07 11:07:53 · 125 阅读 · 0 评论 -
Observer,观察者模式
Observer,观察者模式定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都将得到通知并被自动更新。http://blog.163.com/zhoumhan_0351/blog/static/39954227201043153542462有两种方法,一种是推,另外一种是拉。所谓推是指每当subject有更新时,其会依次调用observer中的updat...原创 2020-01-07 11:06:26 · 124 阅读 · 0 评论 -
单例模式
单例模式Ensureaclassonlyhasoneinstance,andprovideaglobalpointofaccesstoit.http://blog.163.com/zhoumhan_0351/blog/static/3995422720104277410773/classSingleton{public:staticSinglet...原创 2020-01-07 11:05:23 · 108 阅读 · 0 评论 -
适配器模式,Adapter
适配器模式,Adapter将一个类的接口转换成客户希望的另外一个接口。结构型模式简介http://blog.163.com/zhoumhan_0351/blog/static/39954227201042884015161/对象适配器维护了一个Adaptee的接口。classTarget{Target(){}//...request};classAdapte...原创 2020-01-07 11:04:11 · 87 阅读 · 0 评论 -
设计模式---组合模式
组合模式将对象组合成树形结构以表示整体-部分的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。http://blog.163.com/zhoumhan_0351/blog/static/39954227201042884015161/classComposite;classComponent{Component(){}Operation...原创 2020-01-07 11:02:25 · 131 阅读 · 0 评论