zoukankan      html  css  js  c++  java
  • one 策略模式 strategy

    --读书笔记

    定义
    策略模式--定义算法簇,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。(看不懂的话,往下,有人话版/我自己的解释)
    
    相关原则
    > 1,变化单独封装  
      2,多用组合,少用继承(Go中只有组合)
      3,**针对接口编程,不针对实现编程**
        >> 意思大概是,在结构部分的代码里,不要出现实例化的东西?(未必对)
        
    > 设计系统的时候,首先要熟悉已有的设计模式,最终要能够熟练运用;如果有时候找不到设计模式,则采用OO的原则。**要诀:随时想到系统以后可能需要的变化以及应该变化的原则**
    

    类图

    策略模式

    名白
    > 设计模式可以把个人的思考层次提高到模式层面,脱离琐碎的对象。
    
    > 策略模式,把类的行为封装为 一个一个的,独立的,可替换的算法,放到其他类里。  
        >> 具体:用内部接口,替换内部类,加一个setter方法,使该属性可替换,而放方法的类去实现这个接口(上转型)。再美其名曰:运行时多态。
        
    > 如面试被问: 接口的作用?
        >> 可从四个方面回答:  
            1,抽象相关的设计时用
            2,实现多态,运行时的动态
            3,实现弹性的设计。
            
            4,多人开发时的 约定和标准。
            
    > 深入的探究下:所谓的用接口实现多继承的,是怎么搞的?
    
    > 叫法升级:  行为-->算法。
  • 相关阅读:
    LN : leetcode 283 Move Zeroes
    LN : Eden Polymorphic And OOP Design Pattern Abstract Factory
    LN : leetcode 242 Valid Anagram
    LN : leetcode 231 Power of Two
    LN : leetcode 191 Number of 1 Bits
    LN : leetcode 263 Ugly Number
    LN : leetcode 258 Add Digits
    LN : leetcode 292 Nim Game
    day5——Python整型、浮点型、布尔型及字符串
    day4——Python运算符
  • 原文地址:https://www.cnblogs.com/mingbai/p/strategy.html
Copyright © 2011-2022 走看看