美文网首页
房贷选择之策略模式

房贷选择之策略模式

作者: 搞好关系 | 来源:发表于2019-02-22 12:42 被阅读0次

之前我们说了房贷计算,资讯了icbc,给出了你大致的每月房贷明细,也给出了你N中贷款方式,那么今天我们就扯一下贷款选哪种方式吧。
1 商贷
2公积金
3组合贷款
对于大众来说你能选只有这几个?有人说还有全款,那你不是杠精就是款爷……
纠结吧,那就对了不过不是重点……重点是我们要使用计算编程语言来体现这种纠结体。

策略模式

策略模式作为一种[软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。

策略模式

场景使用

1 表现行为不同,但是是可以采用不同的方式处理
2 有固定的几种处理办法可供选择,将算法抽离出来供选择
3 对外内部细节屏蔽,只提供方案

实例:

wo:我能选择哪种房贷方式?
icbc:你有公积金吗?北京的只能北京使用,不能在你老家使用?
wo:那我怎么办?
icbc:可以商贷啊

心中再次一万个羊驼狂奔而过
好了,吐槽完我们看看怎么实现银行的霸道方式吧
首先要有个上下文来担当处理人,它手握锦囊

protocol LoadStrategy{
    func load(_ load:Load)
}

class LoadContext{
    var strategy: LoadStrategy
    init(_ strategy: LoadStrategy) {
        self.strategy = strategy
    }
    func load(_ load: Load) -> Void {
        self.strategy.load(load)
    }
}

其次,有多少个锦囊呢?
我们一共有3个锦囊,不对,是银行只有3个锦囊---等额本金 等额本息 公积金

class AverageCapitalPlusInterestStrategy:AverageCapitalPlusInterest, LoadStrategy{
    
    func load(_ load: Load) {
        load.accept(visiter: self)
        print("申请等额本息:\n\(self.monthMoneys)")

    }
}

class AverageCapitalStrategy: AverageCapital, LoadStrategy{
    func load(_ load: Load) {

        load.accept(visiter: self)
        print("申请等额本金:\n\(self.monthMoneys)")

    }
}
class AccumulaFundStrategy: LoadStrategy{
    func load(_ load: Load) {
//        load.accept(visiter: self)
        print("不好意思ICBC不支持您公积金贷款")
    }
}

最后你开始犯病----纠结综合征迎头而来随即附体
看看你怎么选择吧:

let s1 = AverageCapitalStrategy.init()
let s2 = AccumulaFundStrategy.init()
let s3 = AverageCapitalPlusInterestStrategy.init()

1 等额本金

let context = LoadContext.init(s1)
context.load(myLoad)
等额本金

2 等额本息

let context = LoadContext.init(s2)
context.load(myLoad)
image.png

3 公积金

let context = LoadContext.init(s3)
context.load(myLoad)
image.png
痛苦不,扎心不,交了高额的五险一金最后买房用不上……

相关文章

  • 房贷选择之策略模式

    之前我们说了房贷计算,资讯了icbc,给出了你大致的每月房贷明细,也给出了你N中贷款方式,那么今天我们就扯一下贷款...

  • PHP设计模式之策略模式

    PHP设计模式之策略模式

  • PHP设计模式之策略模式

    PHP设计模式之策略模式

  • 行为型模式:策略模式

    LieBrother原文:行为型模式:策略模式 十一大行为型模式之五:策略模式。 简介 姓名 :策略模式 英文名 ...

  • 简说设计模式之策略模式

    前言:对于设计模式基础概念可以去看[简说设计模式之设计模式概述] 一、什么是策略模式 策略(Strategy)模式...

  • 策略模式

    由于策略模式和工厂模式很像 主要区别 我的理解: 工厂模式就是需要什么生产什么 策略模式就是根据已有的策略选择用什...

  • 策略模式 2018-11-04

    设计模式之策略模式 官方说明设计模式的3个角色: 环境角色:context , 持有一个策略的引用 抽象策略角色,...

  • 策略模式

    本文参考自: 《JAVA设计模式》之策略模式(Strategy) 1. 作用 策略模式属于对象的行为模式。其用意是...

  • PHP中常见的五种设计模式

    策略模式 策略模式是对象的行为模式,用意是对一组算法的封装。动态的选择需要的算法并使用。 策略模式指的是程序中涉及...

  • 策略模式

    参考资料:漫话:如何给女朋友解释什么是策略模式? 设计模式之策略模式(实例+Demo) Java设计模式(8)——...

网友评论

      本文标题:房贷选择之策略模式

      本文链接:https://www.haomeiwen.com/subject/cfisyqtx.html