视频教程-实用通俗易懂的设计模式-软件设计

扫码下载「CSDN程序员学院APP」,1000+技术好课免费看

APP订阅课程,领取优惠,最少立减5元 ↓↓↓

订阅后:请点击此处观看视频课程

 

视频教程-实用通俗易懂的设计模式-软件设计

学习有效期:永久观看

学习时长:316分钟

学习计划:6天

难度:

 

口碑讲师带队学习,让你的问题不过夜」

讲师姓名:赵玉

技术总监/研发总监

讲师介绍:15年一线项目从业经验,长期从事大型商业项目管理。 长期主导研发金融,水利行业等,大型商业项目。深入研究项目全生命周期,参与公司产品线定位,架构设计,管理协调实施项目投标方案编写。关注大型项目需求分析,设计,项目管理实施,客户培训。

☛点击立即跟老师学习☚

 

「你将学到什么?」

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、无数工程师实践的代码设计经验的总 结,它是面向对象思想的高度提炼和模板化。使用设计模式将会让代码具有更高的可重用性、更好的灵 活性和可拓展性、更容易阅读和理解。 力求用更通俗的语言阐述难懂的概念;用更简单的语法实现复杂的逻辑;用更短小的代码写出强悍的程 序! 希望能带给读者一种全新的体验和思考方式。

 

「课程学习目录」

第1章:设计模式概述
1.设计模式概述
第2章:创建模式(5种)
1.1、工厂方法模式(Factory Method);
2.2、抽象工厂模式;
3.3、单例模式(Singleton)
4.4、建造者模式(Builder);
5.5、原型模式(Prototype)
第3章:结构模式(7种)
1.6、适配器模式;
2.7、装饰模式(Decorator)
3.8、代理模式(Proxy)
4.9、外观模式(Facade);
5.10、桥接模式(Bridge)
6.11、组合模式(Composite)
7.12.享元模式
第4章:关系模式(11种)
1.13、策略模式(strategy)
2.14、模板方法模式(Template Method)
3.15、观察者模式(Observer);
4.16、迭代子模式(Iterator)
5.17、责任链模式(Chain of Responsibility)
6.18、命令模式(Command)
7.19、备忘录模式(Memento)
8.20、状态模式(State)
9.21、访问者模式(Visitor)
10.22、中介者模式(Mediator)
11.23、解释器模式(Interpreter)
第5章:设计模式总结
1.设计模式总结

 

7项超值权益,保障学习质量」

  • 大咖讲解

技术专家系统讲解传授编程思路与实战。

  • 答疑服务

专属社群随时沟通与讲师答疑,扫清学习障碍,自学编程不再难。

  • 课程资料+课件

超实用资料,覆盖核心知识,关键编程技能,方便练习巩固。(部分讲师考虑到版权问题,暂未上传附件,敬请谅解)

  • 常用开发实战

企业常见开发实战案例,带你掌握Python在工作中的不同运用场景。

  • 大牛技术大会视频

2019Python开发者大会视频免费观看,送你一个近距离感受互联网大佬的机会。

  • APP+PC随时随地学习

满足不同场景,开发编程语言系统学习需求,不受空间、地域限制。

 

「什么样的技术人适合学习?」

  • 想进入互联网技术行业,但是面对多门编程语言不知如何选择,0基础的你
  • 掌握开发、编程技术单一、冷门,迫切希望能够转型的你
  • 想进入大厂,但是编程经验不够丰富,没有竞争力,程序员找工作难。

 

「悉心打造精品好课,6天学到大牛3年项目经验」

【完善的技术体系】

技术成长循序渐进,帮助用户轻松掌握

掌握软件设计知识,扎实编码能力

【清晰的课程脉络】

浓缩大牛多年经验,全方位构建出系统化的技术知识脉络,同时注重实战操作。

【仿佛在大厂实习般的课程设计】

课程内容全面提升技术能力,系统学习大厂技术方法论,可复用在日后工作中。

 

「你可以收获什么?」

•23个即学即用通俗易懂直接切中要点的设计模式应用

•23个案例代码使用实例场景

•最最重要的是你能更加深入的理解,并应用到实际项目中解决现实问题,提供思路方法。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容简介: 设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 本课程内容定位学习设计原则,学习设计模式的基础。在实际开发过程中,并不是一定要求所有代码都遵循设计原则,我们要考虑人力、时间、成本、质量,不是刻意追求完美,要在适当的场景遵循设计原则,体现的是一种平衡取舍,帮助我们设计出更加优雅的代码结构。本章将详细介绍开闭原则(OCP)、依赖倒置原则(DIP)、单一职责原则(SRP)、接口隔离原则(ISP)、迪米特法则(LoD)、里氏替换原则(LSP)、合成复用原则(CARP)的具体内容。 为什么需要学习这门课程? 你在日常的开发中,会不会也遇到过同样的问题。系统出现问题,不知道问题究竟出在什么位置;当遇到产品需求,总是对代码缝缝补补,不能很快的去解决。而且平时工作中,总喜欢把代码堆在一起,出现问题时,不知道如何下手,工作效率很低,而且自己的能力也得不到提升。而这些都源于一个问题,那就是软件设计没做好。这门课能帮助你很好的认识设计模式,让你的能力得到提升。课程大纲: 为了让大家快速系统了解设计模式知识全貌,我为您总结了思维导图,帮您梳理学习重点,建议收藏!
作业04 行为型+其它(以step0_src中代码为基础) 1. 将玩家改为只有两个Player,一个HumanPlayer,一个AutoPlayer。初始时,各玩家都站在map中的第一个Block上,初始的移动方向任意。每轮次HumanPlayer玩家前进3格,AutoPlayer前进2格。前进方向任意,但若前方有格子(前进、左转、右转),必定前进,而不能往回走。HumanPlayer所在的格子用[X]表示,AutoPlayer的格子用(X)表示。请实现代码。 2. 在Players的代码中,通过getFirst和getLast取得两个玩家,但这两个成员函数与Player用deque表示紧密相关,且只能取得前后两个Player。考虑到玩家数量可多个,玩家集合的数据结构可多样,请用迭代器模式重新实现遍历所有玩家的功能,要求分别实现C++风格的外部迭代器和Java风格的外部迭代器。迭代器接口如下: class CppIterator { public: CppIterator( ) {} virtual ~CppIterator( ) {} virtual void first() = 0; virtual void next() = 0; virtual bool isLast() const = 0; virtual void * current() = 0; virtual int count() const=0; }; class JavaIterator { public: JavaIterator() {} virtual ~JavaIterator() {} virtual void* next() = 0; virtual bool hasNext() const = 0; virtual int count() const=0; }; 3. 若玩家前进时,各玩家的前进策略多种多样,如一种策略是各可能方向是等概率的(例如1中的代码),另一种策略是各方向有不同几率:inDir未确定时,向各方向前进的概率相等;inDir确定时,各方向的概率不一定相同。具体可见下表。而且以后可能会添加新的前进策略,如具有AI的策略等;玩家还可能需要动态改变前进策略。请使用策略模式实现。 inDir==NONE时 inDir!=NONE时 连通四个方向 各方向各25% 直行50%,左转25%,右转25% 连通往三方向 各方向各33% 可直行时,直行60%,左转(或右转)40%; 不可直行时,左转和右转各50% 连通两个方向 各方向各50% 与inDir不同的方向为100% 连通一个方向 各方向各100% 100%地转向往回走 4. 为提高趣味性,增加了卡片子系统和魔法子系统, Player可以使用卡片、魔法等,作用于各玩家或系统中的其它对象上。部分类图如下: 这里使用RobCard会抢走指定玩家的一半金钱;使用MeanCard会平均所有玩家的金钱;使用ReturnSpell会使指定玩家直接返回到开始的Block,inDir不定。 1) 修改PlayMenu为: PlayMenu 1. Go… 2. ApplyRobCard 3. ApplyMeanCard 4. ApplyReturnSpell 5. Load 6. Save 7. Back To MainMenu Your selected: 并给Player类添加行为ApplyRobCard(Player * target);、ApplyMeanCard();和ApplyReturnSpell(Player * target),然后实现。 2) 以后肯定要添加其它Card和Spell,还有可能增加道具子系统等。由于Player已有子类AutoPlayer和HumanPlayer,而且未来扩展Card、Spell和道具等时,作用目标target有多种可能,如Player、Block、Player集合,甚至Card类等,所以希望在未来扩展时,避免通过继承Player类或其子类进行扩展。请使用命令模式实现此目地。 5. 若需要增加FlyCard和FreezeSpell。其作用是:当应用FlyCard到某个Player上时,该player将每轮次前进6格,并持续2个轮次;当施加FreezeSpell到某个Player上时,该player将每轮次只前进1格,并持续3个轮次。 考虑到以后还会添加其它类似功能的Card和Spell,但不希望直接从Player类派生子类进行扩展。请使用状态模式实现此目的。 6. 若还需要增加HurtSpell,该Spell会导致被作用的Player,每轮次减少Money的数量5,并持续2

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值