概述 简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化接口隔离原则:使用多个专门的接口,而不是使用一个总接口迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),不和
建造者模式主要解决问题: 具备若干成员,当其中一个成员发生变化,其它成员也随着发生变化。 这种复杂对象的生成需要使用建造者模式来生成。 建造者设计模式的结构图: 来源:http://c.biancheng.net/view/1354.html 例子: 街头篮球角色创建模拟 街头篮球:中锋、前锋、后卫 最重要的属性:身高(会影响其他属
概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),
概述 简单介绍一下七大设计原则: 开闭原则:是所有面向对象设计的核心,对扩展开放,对修改关闭 依赖倒置原则:针对接口编程,依赖于抽象而不依赖于具体 单一职责原则:一个接口只负责一件事情,只能有一个原因导致类变化 接口隔离原则:使用多个专门的接口,而不是使用一个总接口 迪米特法则(最少知道原则):只和朋友交流(成员变量、方法输入输出参数),
前言 今天我们一起来看行为型设计模式中的命令模式、何为命令模式呢?先谈命令——我现在需要对某一条信息进行删除,我进行点击删除按钮。后台执行删除的命令、对信息进行删除。那么我们要讲的命令模式又是什么呢?命令模式就是把一个操作或者行为抽象为一个对象。然后通过对命令的抽象化来使得发出命令的职责和执行命令的职责分隔开。简单来说命令模
外观模式(Facade): 外部通过一个统一的接口,访问子系统中的一群接口。外观模式定义了一个高层接口,为子系统中的一组接口提供一个一致的入口,使得子系统更容易使用。外观模式相对比较简单,可以理解为中介,原先租房需要自己一个个筛选,联系房东,谈好价格,签合同等等,现在不需要这些了,只要你说出要求中介就会将房子找好,你只需要掏钱签合同
简单工厂模式 概念 简单工厂模式属于创建型模式,又叫做静态工厂方法(StaticFactoryMethod)。简单工厂模式是由一个工厂对象决定创建哪一种产品类实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为不
享元模式(Flyweight): 定义: 运用共享技术有效地支持大量细粒度对象的复用。享元模式可以避免大量相似类的开销,在软件开发中如果需要生成大量细粒度的类实例,而这些类实例除了几个参数外基本上相同,那么这时就可以使用享元模式大幅度减少实例化类的数量。如果能把这些参数移动到实例外,在方法调用时将他们传递进去,这样就可以通过共享大幅度
组合模式(Composite): 定义: 组合模式又叫部分整体模式,它是一种将对象组合成树状的层次结构模式,用来表示"部分-整体"的关系,使用户对单个对象和组合对象具有一致的访问性。 组合模式的角色: 1)抽象构建(Component):它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象构件还声明访问
模板模式(Template): 提到模板,可能大多数人想到的是"简历模板"、"论文模板"等,比如我们要写简历时,会从网上下载一份漂亮的简历模板,其格式是固定的,我们根据自己的情况填充不同的内容。模板模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 模板模式的角
策略模式(Strategy): 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们可以互换”。 策略模式的角色: 1)环境类(Context):采
单例模式: 1、定义:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例,这个类称为单例类 2、实现过程要点: (1)单例类的构造函数为私有 (2)提供一个自身的静态私有成员变量 (3)提供一个公有的静态工厂方法 注:单例模式由类提供实例对象,所以需要使用static来定义方法和属性,
命令模式(Command): 将请求封装成对象,以便使用不同的请求、日志、队列等来参数化其他对象。命令模式也支持撤销操作。 命令模式的角色: 1)传递命令对象(Invoker):是请求的发送者,它通常拥有很多的命令对象,并通过访问命令对象来执行相关请求,它不直接访问接收者。 2)抽象命令接口(Command):声明执行命令的接口,拥有
职责链模式(ChainofResponsibility): 在现实生活中,常常会出现这样的事例:一个请求需要多个对象处理,但每个对象的处理条件或权限不同。如公司员工报销差旅费,可审批的领导有部分负责人、副总经理、总经理等,但每个领导能审批的金额是不同的,不同的金额需要找相应的领导审批,也就是说要报销必须先搞清楚需要谁来审批。职责链模式就是为了解决这样的
适配器模式: 类适配器: 对象适配器: 1、定义:将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作 2、模型结构: (1)目标抽象类(Target):客户所期待得到的接口 (2)适配器类(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口 (3)适配者类(Adaptee):需要适
装饰模式: 1、定义:动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活 2、模型结构: (1)抽象构件(Component):定义一个抽象接口以规范准备接收附加责任的对象 (2)具体构件(ConcreteComponent):实现抽象构件,通过装饰角色为其添加一些职责 (3)抽象装饰类(Decorator):继承抽象
状态模式(State): 在软件开发过程中,应用程序可能会根据不同的情况作出不同的处理。最直接的解决方案是将这些所有可能发生的情况全都考虑到,然后使用ifelse语句来做状态判断来进行不同情况的处理。但对复杂状态的判断就显得"力不从心了",随着增加新的状态或者修改一个状体ifelse(或switchcase)语句的增多或者修改)可能会引起很大的修改,违反OCP原则。状态
责任链模式: 下图为责任链 1、定义:为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象 记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止 2、模型结构: (1)抽象处理者(Handler):定义一个处理请求的接口,包含抽象处理方法和
观察者模式(Observer): 指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。 观察者模式的角色: 1)抽象目标(Subject):也叫抽象目标类,它提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法。 2)具体目标(Concr
中介者模式: 1、定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用, 从而使其耦合松散,而且可以独立地改变它们之间的交互 2、模型结构: (1)抽象中介者(Mediator):它是中介者的接口,提供了同事对象注册与转发同事对象信息的抽象方法 (2)具体中介者(ConcreteMediator):实现中介
今天,有什么经验需要分享呢?
立即撰写