zoukankan      html  css  js  c++  java
  • 设计模式 笔记1

    2016.4.25


     业务是目的:  取火

    技术是方法: 钻木取火

    架构师 协调业务和技术的关系,把主要业务(目的/问题)分拆成具体的技术实现方案

    软件公司里头:

     

    架构师要懂很多技术,还要有商业头脑 

    所谓“架构” 就是把一个大的系统给拆分拆散后又能顺利的组装起来。

    软件架构包括了:代码架构以及承载代码运行的硬件部署架构

    软件开发是需要成本的,要考虑项目难度开发周期。

    技术复杂度太高,掌握这项技术的时间成本和后期维护的难度(后期维护也需要训练新员工来进行维护)就会大大增加。

    所以小项目用高技术肯定是划不来的。

    实现一个仅仅只是解决当下问题的方案可能成本更低。

    所以往往我们会发现,一些小的项目,即时项目 或者是 要马上上线的项目 很多就是走 面向过程的开发路线,采用边做边改(Build and Fix Model)的软件开发模型。

    记住,任何需求的变更,功能的拓展都是需要成本的。

    参考:架构漫谈(九):理清技术、业务和架构的关系  http://kb.cnblogs.com/page/543110/


    所有设计模式都是为了代码后期维护增加功能带来方便的,

    其实如果只是为了解决当下问题,用面向过程设计思想更快捷直接,因为修改的地方少,在主函数的大循环里增加功能的实现代码即可

    1.松耦合

    ——分离视图和数据模型,方便后期维护和扩展功能

    ——分离操作,把每一个操作(如计算器的加减乘除)都单独封装成类,单独编写和修改

    2.面向对象的程序设计 是通过封装、继承、多态把程序的耦合度降低(解耦:紧耦合 -> 松耦合),

    实现程序的:

    可维护 —— 只要改要改的字

    可复用 —— 这次用了下次还可以用

    可扩展 —— 如需添加字(添加功能),只需另刻字加入即可

    灵活性好 —— 活字的位置可以随意移动

    3.简单工厂类对象生成工厂) —— 解决对象的创建问题

    专门用来(有选择性地)实例化对象的类

    4.策略模式 —— 用来封装算法,简化了单元测试,因为每个算法都有自己的类,可以通过自己的接口作单独测试。

    5.策略模式 + 简单工厂 

    策略模式是用来封装算法的,

    简单工厂是用来生成对象的,

    当需要在不同条件下使用不同策略(算法)的时候,采用 策略模式 + 简单工厂 来做,可以大大简化客户端的代码量(表现上是使用类的数量减少了) ,

    plus:

    这种设计模式实际上也是贯穿了MVC思想:

    将1.具体的算法实现(数据模型)OperationAdd,

    2.调用(控制器)OperationFactory

    3.客户端(视图)OperationMain

    相分离,降低了耦合度,利于每个模块的单独测试,以及今后的功能拓展

    参考:《大话设计模式》 程杰


  • 相关阅读:
    Idea debug报错Command line is too long
    云计算与虚拟化入门通识
    yield from语法
    python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
    python模块中sys.argv[]使用
    SQLAlchemy中Model.query和session.query(Model)的区别
    MAN VGEXTEND
    Python---基础---dict和set
    Python---基础---元组
    Python---基础---list(列表)
  • 原文地址:https://www.cnblogs.com/Chongger/p/5432715.html
Copyright © 2011-2022 走看看