- 博客(8)
- 收藏
- 关注
原创 设计模式——命令模式Command
将一个命令封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作优点:1.比较容易设计出一个命令队列2.在需要的情况下,可以比较容易地将命令记入日志3.允许接收请求的一放决定是否要否决请求4.容易实现对于请求的撤销与重做5.由于加入新的具体命令类不影响其他的类,因此增加新的具体命令类很容易6.把请求一个操作的对象与知道怎么执行一个操作的对象分割开us...
2018-04-25 14:24:36 174
原创 设计模式——备忘录模式Memento
算的上是比较简单的设计模式了,然而自己写还是磕磕绊绊定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可以将该对象恢复到原先保存的状态。Originator(发起人)负责创建一个备忘录,用以记录时刻它的内部状态,并可使用备忘录回复内部状态。Originator可根据需要决定备忘录存储那些内部状态Memento(备忘录)负责存储发起人对象的内部状态,并可防止...
2018-04-24 18:14:58 252
原创 设计模式——状态模式State
针对方法过长违背“单一职责原则”和“开放封闭原则”而提出 定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来是改变其类主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化好处:将于特定状态相关的行为局部化,并且将不同状态的行为分割开来,将特定的状态相关的行为都放入一个对象中,由于所有状态相关的代码...
2018-04-23 16:07:11 179
原创 设计模式——桥接模式bridge
将抽象部分和实现分离,使得他们可以独立变化using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 桥接模式 { abstract class HandsetSoft { ...
2018-04-19 13:54:47 175
原创 leetcode 91. Decode Ways
简单dp感觉自己越来越差了==可能本来就是这个水平吧orz能想到dp[i]=dp[i-1]+dp[i-2]但是写不明白,20+行的代码还要找标称其实如果想着判断两位字符是用函数封装一下,问题就是so easy单独一位的不合法的情况只有为'0'两位的是大于>27如果遍历到某一位发现dp==0 直接return 0还是要好好练习呀class Solution { public: bool...
2018-04-10 18:06:36 174
原创 设计模式——装饰模式Decorate
装饰模式定义:动态给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活Component是定义了一个对象接口,可以给这些对象动态添加职责。ConcreteComponent是定义了一个具体的对象,也可以给这个对象添加一些职责Decorator装饰抽象类,继承了Component从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorater的存...
2018-04-09 11:16:30 487
原创 leecode 135. Candy【贪心】
https://leetcode.com/problems/candy/description/There are N children standing in a line. Each child is assigned a rating value.You are giving candies to these children subjected to the following requi...
2018-04-08 11:55:31 170
原创 设计模式——享元模式Flyweight
定义:运用共享技术有效支持大量细粒度的对象有一个享元工厂,用来创建并管理flyweight对象。它主要是确保合理共享flyweight,当用户请求一个flyweight时,flyweight工厂对象提供一个已知创建的实例或者创建一个内部状态和外部状态:在享元对象内部并且不会随环境变化而变化的共享状态,是享元对象的内部状态随环境改变而改变的,不可以共享的状态是外部状态使用情景:如果一个应用程序使用了...
2018-04-06 15:43:40 201
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人