面向对象设计 工具箱

面向对象是一强大的工具,来构建现在复杂强大的应用系统。以面向对象以中心,从最基本的面向对象的语言,基础,原则,设计模式,架构模式,到顶层的系统架构来说明,丰富这些工具箱中的内容,会让我们的设计工作更加游刃有余。
OO语言:
以Java为代表,还有C#(Ruby之类的动态语言),C++也是,但不全是。详细了解可参考维基百科
OO基础:
其实就是OO语言中所表现出来的,也是OO语言的特点。包括四个方面:
    一,抽象
    二,封装
    三,多态
    四,继承
(注:原则,设计模式只是人们总结以往的经验,提炼出来的设计当中好的方法,原则而己,避免以后再出现同样的问题。理论上讲只要有OO基础,你也能写出任何程序,只是过程及日后维护扩展会比较艰辛点:)
OO原则:
    一、
"开放-封闭"原则(OCP)
    二、里氏代换原则(LSP)        
    三、 依赖倒置原则(DIP)
    四、 接口隔离原则(ISP)
    五、 合成/聚合复用原则(CARP)
    六、 迪米特法则(LoD)
更通俗点来描述:
    1.封装变化
    2.多用组合,少用继承
    3.针对接口编程,不针对实现编程
    4.为交互对象之间的松耦合设计而努力
    5.类应该对扩展开放,对修改关闭
    6.依赖抽象,不要依赖具体的类
     (这里不做详细的讲述,否则就不只是一本书能容下的了:)
OO设计模式:
一,创建型模式:
  1. 简单工厂(Simple Factory)模式
  2. 工厂方法(Factory
    Method)模式
  3. 抽象工厂(Abstract
    Factory)模式
  4. 单例Singleton
    Pattern
  5. 建造者(Builder)模式
  6. 原型(Prototype)模式
二,结构模式:
  1. 适配器模式(Adapter):Match interfaces
    of different classes
  2. 合成模式(Composite):A tree structure
    of simple and composite objects
  3. 装饰模式(Decorator):Add
    responsibilities to objects dynamically
  4. 代理模式(Proxy):An object representing another object
  5. 享元模式(Flyweight):A fine-grained
    instance used for efficient sharing
  6. 门面模式(Facade):A single class
    that represents an entire subsystem
  7. 桥梁模式(Bridge):Separates an
    object interface from its implementation
三,行为模式:
  1. Chain of Resp.(责任链模式)A way of
    passing a request between a chain of objects
  2. Command(命令模式)Encapsulate a
    command request as an object
  3. Interpreter(解释器模式)A way to
    include language elements in a program
  4. Iterator(迭代子模式)Sequentially
    access the elements of a collection
  5. Mediator(中介者模式)Defines
    simplified communication between classes
  6. Memento(备忘录模式)Capture and
    restore an object’s internal state
  7. Observer(观察者模式)A way of
    notifying change to a number of classes
  8. State(状态模式)Alter an
    object’s behavior when its state changes
  9. Strategy(策略模式)Encapsulates
    an algorithm inside a class
  10. Template Method(模版方法模式)Defer the
    exact steps of an algorithm to a subclass
  11. Visitor(访问者模式)Defines a
    new operation to a class without change
 

架构模式:

比如IOCAOP,MVC,Layered,pipeline等等,框架模式决定了整个系统中某部分程序的总体结构。(其主要目的也是用来降低组件间的耦合度,封装变化)

系统架构:
比如你要做一个像Myspace一样巨大的网站,他的前台,后台,数据缓冲机制,数据库的选择,服务器均载平衡等等,都是系统架构要考虑的。
这些工具就是用来帮助你构建你的软件金字塔的工具,准备好了吗,建设你的软件帝国
🙂
参考资料:
        《Head First
设计模式》
《敏捷软件开发:原则、模式与实践》

 

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.