03-设计模式

设计模式

1. 概念
2. 软件设计原则
3. 常见的设计模式

什么是设计模式

1. 模式--经验:软件开发实践过程中总结的经验,通常被有经验的面向对象的软件开发人员所采用。 
2. 注意地方:结合实际应用,不能滥用
3. 优点:
    * 代码质量好 可靠性高。
    * 复用代码。代码重用。
    * 代码更规范,更容易被人理解

软件设计原则

1. 概念:
    * 设计所要解决的主要问题,是如何高效率、高质量、低风险的应对各种各类变化,例如需求变更、软件升级等。 
2. 软件设计五种原则(solid)
    1. S:单一职责原则:
        * 一个模块负责一个功能,不同的功能分隔开
    2. O - 开放封闭原则: 
        * 对拓展开放,对修改封闭,不建议修改代码
    3. L - Liskov原则: 
        * 任何一个基类可以出现的地方,子类一定可以出现。
    4. I - 接口隔离原则: 
        * 不同功能的结构,最好放在不同的interface里,一个接口最好不要集成太多的功能
    5. D – 依赖倒置原则: 
        * 具体依赖于抽象,而非抽象依赖于具体。

常见的设计模式

1. 单例模式
    1. 概念:全局只有一个
        * •	哪些场合需要用到单例? Servlet,ServletContext
    2. 特点:
        * 单例类只能有一个实例(包含自己的实例成员变量)
        * 单例类必须自己创建自己的唯一实例。→构造方法私有0
        * 单例类必须给所有其他对象提供这一实例。(提供获取自己实例的对象)
    3. 实现
        * 线程不安全的懒汉
        * 线程安全的懒汉
        * 线程安全的立即加载
        * 线程安全的立即加载(变种)
        * 线程安全的懒加载---静态内部类的实现
    4. 优缺点:多线程下依然是单例,加锁会影响执行效率。
2. 工厂模式
    1. 概念:在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
    2. 简单工程
        * 给我需要使用的类的名字。简单工厂返回一个这种类实例。 
    3. 工厂方法模式:
        * 创建一个工厂接口和创建多个工厂实现类
        * 完全遵循开闭原则,不对任何已有的代码进行修改,直接新增一个类
3. 代理模式
    1. 静态代理
    2. 动态代理:在内存中形成代理类
        * 实现步骤
            1. 代理对象和真实对象实现相同的接口
            2. 代理对象=Proxy.newProxyInstance();
            3. 使用代理对象调用方法
            4. 增强方法
        * 增强方式
            1. 增强参数列表
			2. 增强返回值类型
			3. 增强方法体执行逻辑
			
4. 建造者模式
    1. 建造一个人
        1. 首先建造一个head对象,art对象,leg对象,其中包含不同的参数
        2. 在创建一个humen对象,包含head,art,leg,属性
        3. 创建一个humenBudlier类进行赋值操作
        3. 创建测试类,答应传递参数,打印humen,查看结果
posted @ 2019-07-31 17:31  励志前行  阅读(103)  评论(0编辑  收藏  举报