设计模式
本人对大话设计模式学习的一些见解,特开此专栏。
「已注销」
这个作者很懒,什么都没留下…
展开
-
设计模式——职责链模式
初识职责链模式(Chain of Responsibility):使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一个链,并沿着这条链传递该请求,直到有一个对象处理它为止。结构角色:Handler类:定义一个处理请示的接口ConcreteHandler类,处理它所负责的请求,可访问它的后继者,如果可处理该请求,就处理之,否则就将该请求转发给它...原创 2019-03-03 17:39:38 · 274 阅读 · 12 评论 -
设计模式——观察者模式+事件委托
初识观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发送变化时,会通知所有观察者对象,使它们能够自动更新自己。结构图角色:Subject类:它把所有对观察者对象的引用保存在一个聚集里,每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对象。Obserber类:抽象观察者,为所有的具体观察者定义一个接口,...原创 2019-03-01 21:12:01 · 376 阅读 · 12 评论 -
设计模式——模板方法模式
初识模板方法模式(TemplateMethod):定义一个算法中的操作框架,而将一些步骤延迟到子类中。使得子类可以不改变算法的结构即可重定义该算法的某些特定步骤。结构角色:AbstractClass类,实现了一个模板方法,定义了算法的骨架,具体子类将重定义PrimitiveOperation以实现一个算法的步骤。ConcreteClass类:实现PrimitiveOperati...原创 2019-02-28 15:30:32 · 191 阅读 · 12 评论 -
设计模式——策略模式
初识策略模式(Strategy):它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。是一种行为型模式。理解:策略模式将每种算法进行封装,并让算法继承于抽象超类。在使用算法的环境中针对抽象策略类,而不是针对具体算法,符合开放-封闭原则。结构图角色:(1)Context(环境类):负责使用算法策略,其中维持了一个抽象策略类的引用实例。...原创 2019-02-27 19:30:34 · 199 阅读 · 23 评论 -
设计模式——享元模式
初识享元模式(Flyweight),运用共享技术有效地支持大量细粒度的对象。举个最简单的例子,网络联机下棋的时候,一台服务器连接了多个客户端(玩家),如果我们每个棋子都要创建对象,那一盘棋可能就有上百个对象产生,玩家多点的话,因为内存空间有限,一台服务器就难以支持了,所以这里要使用享元模式,将棋子对象减少到几个实例。结构角色FlyweightFactory:一个享元工厂,用来创建并管...原创 2019-02-26 21:25:20 · 273 阅读 · 18 评论 -
设计模式——组合模式
初识组合模式(Composite),将对象组合成树形结构来表现”部分-整体“的层次结构,使得客户以一致的方式处理单个对象以及对象的组合。组合模式实现的最关键的地方是——简单对象和复合对象必须实现相同的接口。这就是组合模式能够将组合对象和简单对象进行一致处理的原因。结构角色:组合部件(Component):它是一个抽象角色,为要组合的对象提供统一的接口。叶子(Leaf):在组合中表示...原创 2019-02-24 20:58:01 · 188 阅读 · 28 评论 -
设计模式——桥接模式
初识桥接模式(Bridge)是一种结构型设计模式。Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展。结构应用电脑品牌分为:戴尔、联想、华硕、惠普等。而操作系统又分为windows,Linux等。我们...原创 2019-02-23 16:25:57 · 164 阅读 · 18 评论 -
设计模式——外观模式
初识外观模式(Facade),为了系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。结构角色SubSystem子类,子系统类集合实现子系统的功能,处理Facade对象指派的任务。注意子类中没有Facade的任何信息,即没有对Facade对象的引用。Facade外观类,知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。...原创 2019-02-22 16:33:46 · 175 阅读 · 19 评论 -
设计模式——代理模式
初识代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。原创 2019-02-21 21:31:00 · 205 阅读 · 16 评论 -
设计模式——装饰模式
初识装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。结构角色:Component类:定义一个对象接口,可以给这些对象动态地添加职责。ConcreteComponent类:定义了一个具体的对象,也可以给这个对象添加一些职责。Decorator类:装饰抽象类,继承了Component,从外类扩展Component类的功能,...原创 2019-02-20 17:49:47 · 183 阅读 · 15 评论 -
设计模式——适配器模式
初识适配器模式(Adapter),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。结构由图可知适配器模式包含三个角色:1:Target(目标抽象类):目标抽象类定义客户所需的接口,可以是一个抽象类或接口,也可以是具体类。在类适配器中,由于C#语言不支持多重继承,所以它只能是接口。2:Adapter(适配器类):它可...原创 2019-02-20 13:16:09 · 220 阅读 · 18 评论 -
设计模式——工厂三兄弟+反射
工厂方法模式大学生与志愿者static void Main(string[] args){ IFactory factory = new UndergrauateFactory(); LeiFeng student = factory.CreateLeiFeng(); student.BuyRice(); student.Sweep()...原创 2019-02-16 22:39:33 · 248 阅读 · 14 评论 -
设计模式——六大原则
文章目录原则一:单一职责原则原则二:开放-封闭原则原则三:依赖倒转原则原则四:里氏转换原则原则五:迪米特原则原则一:单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,面向对象五个基本原则(SOLID)之一。它规定一个类应该只有一个发生变化的原因。单一职责原则:如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变...原创 2019-02-12 21:29:28 · 708 阅读 · 11 评论