手机随时阅读
新人专享大礼包¥24
设计模式的六大原则 开闭原则:模块应尽量在不修改原代码(闭)的情况下进行扩展(开)。即在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。 里氏代换原则:如果调用的是父类的话,那么换成子类也完全可以运行。 派生类能够在基类的基础上增加新的行为。只有当派生类可以替换掉基类,且软件单位
行为型模型 访问者模式 抽象访问者(Visitor)角色: 声明了一个或者多个访问操作,形成所有的具体元素角色必须实现的接口。 具体访问者(ConcreteVisitor)角色: 实现抽象访问者角色所声明的接口,也就是抽象访问者所声明的各个访问操作。 抽象节点(Element)角色: 声明一个接受操
行为型模型 备忘录模式 应用场景 如果一个对象需要保存状态并可通过undo或rollback等操作恢复到以前的状态时,可以使用Memento模式。 1)一个类需要保存它的对象的状态(相当于Originator角色) 2)设计一个类,该类只是用来保存上述对象的状态(相当于Memento角色) 3)需要
行为型模型 观察者模式 Subject(被观察者) 被观察的对象。当需要被观察的状态发生变化时,需要通知队列中所有观察者对象。Subject需要维持(添加,删除,通知)一个观察者对象的队列列表。 ConcreteSubject 被观察者的具体实现。包含一些基本的属性状态及其他操作。 Observer
行为型模型 中介者模式 Mediator抽象中介者 中介者类的抽象父类。 concreteMediator 具体的中介者类。 Colleague 关联类的抽象父类。 concreteColleague 具体的关联类。 适用于: 用一个中介对象,封装一些列对象(同事)的交换,中介者是各个对象不需要显示
行为型模型 责任链模式 Handler 处理类的抽象父类。 concreteHandler 具体的处理类。 责任链优缺点 优点: 1。责任的分担。每个类只需要处理自己该处理的工作(不该处理的传递给下一个对象完成),明确各类的责任范围,符合类的最小封装原则。 2。可以根据需要自由组合工作流程。如工作流
行为型模型 命令模式 Command Command命令的抽象类。 ConcreteCommand Command的具体实现类。 Receiver 需要被调用的目标对象。 Invorker 通过Invorker执行Command对象。 适用于: 是将一个请求封装为一个对象,从而使你可用不同的请求对客
行为型模型 模版模式 应用场景 Template Method模式一般应用在具有以下条件 的应用中: - 具有统一的操作步骤或操作过程 - 具有不同的操作细节 - 存在多个具有同样操作步骤的应用场景,但某些具体的操作细节却各不相同总结: 在抽象类中统一操作步骤,并规定好接口;让子类实现接口。这样可以
结构型模式 过滤器模式 过滤器模式 过滤器模式(Filter Pattern)或标准模式(Criteria Pattern)是一种设计模式,这种模式允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。 实现
结构型模式 外观模式 Facade 为调用方定义简单的调用接口。 Clients 调用者。通过Facade接口调用提供某功能的内部类群。 Packages 功能提供者。指提供功能的类群(模块或子系统) 适用于: 为子系统中统一一套接口,让子系统更加容易使用。
结构型模式 桥接模式 Client Bridge模式的使用者 Abstraction 抽象类接口(接口或抽象类)维护对行为实现(Implementor)的引用 Refined Abstraction Abstraction子类 Implementor 行为实现类接口 (Abstraction接口定义
变量名和变量地址 研一时,很偶然的翻开谭浩强老先生的《C程序设计》(是师姐的书,俺的老早就卖了,估计当时觉得这本书写得不够好),很偶然的看到关于变量名的一段话:“变量名实际上是一个符号地址,在对程序编译连接时由系统给每一个变量名分配一个内存地址。在程序中从变量中取值,实际上是通过变量名找到相应的内存
结构型模式 组合模式 Component (树形结构的节点抽象) - 为所有的对象定义统一的接口(公共属性,行为等的定义) - 提供管理子节点对象的接口方法 - [可选]提供管理父节点对象的接口方法 Leaf (树形结构的叶节点) Component的实现子类 Composite(树形结构的枝节点)
结构型模式 适配器模式 适用于: 是将一个类的接口转换成客户希望的另外一个接口。使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
结构型模式 装饰模式 适用于: 装饰者模式(Decorator Pattern)动态的给一个对象添加一些额外的职责。就增加功能来说,此模式比生成子类更为灵活。
结构型模式 代理模式 subject(抽象主题角色): 真实主题与代理主题的共同接口。 RealSubject(真实主题角色): 定义了代理角色所代表的真实对象。 Proxy(代理主题角色): 含有对真实主题角色的引用,代理角色通常在将客户端调用传递给真是主题对象之前或者之后执行某些操作,而不是单纯
创建型模式 原型模式 原型模式主要面对的问题是:“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是他们却拥有比较稳定一致的接口。 适用情况: 一个复杂对象,具有自我复制功能,统一一套接口。
创建型模式 建造者模式 1) Builder:为创建产品各个部分,统一抽象接口。 2) ConcreteBuilder:具体的创建产品的各个部分,部分A, 部分B,部分C。 3) Director:构造一个使用Builder接口的对象。 4) Product:表示被构造的复杂对象。 Concrete
创建型模式 抽象工厂
创建型模式 简单工厂模式
Copyright © 2005-2022 51CTO.COM 版权所有 京ICP证060544号