zoukankan      html  css  js  c++  java
  • headfirst设计模式swift版01

    headfirst设计模式这本书真好,准备用一个月学完。书里讲得很清楚了。

    设计原则:

    1、找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起。

    2、针对接口编程,而不是针对实现编程。

    书中的代码是用java写得,现在正用swift,便做个翻译,没啥技术含量。

    protocol FlyBehavior {
        func fly()  ->Void
    }
    
    protocol QuackBehavior {
        func quack() ->Void
    }
    
    class CannotFly:FlyBehavior {
        init() {
            
        }
        func fly()  {
            println("不会飞")
        }
    }
    
    class Quack:QuackBehavior {
        init() {
            
        }
        func quack()  {
            println("嘎嘎")
        }
    }
    
    class Duck {
        var flyBehavior:FlyBehavior?
        var quackBehavior:QuackBehavior?
        
        init() {
            
        }
        func swim(){
            
        }
        func display(){
            
        }
        
        func fly() {
            flyBehavior?.fly()
        }
        func quack()  {
            quackBehavior?.quack()
        }
    }
    
    
    class MiniDuckSimulator:Duck {
        override init() {
            super.init()
        }
        
    }
    
    let miniDuck = MiniDuckSimulator()
    println("................")
    miniDuck.fly()
    miniDuck.flyBehavior = CannotFly()
    println("................")
    miniDuck.fly()
  • 相关阅读:
    处理器及其调度
    java面向对象
    操作系统概述
    mysql 基础操作
    java集合类详解
    java数组
    java方法
    Python—进程间通信
    Python—TCP的黏包问题以及UDP的分片问题
    Python—网络通信编程之tcp非阻塞通信(socketserver)
  • 原文地址:https://www.cnblogs.com/xdao/p/design_pattern_in_swfit01.html
Copyright © 2011-2022 走看看