C++高级_软件设计模式
    <div class="page" title="Page 5">
      <div class="section">
        <div class="layoutArea">
          <div class="column">
            <blockquote>
              
               ***创建型***(Creational)模式:  如何创建对象; 
              
              
              
               ***结构型***(Structural  )模式:  如何实现类或对象的组合; 
              
              
              
               ***行为型***(Behavioral)模式:  类或对象怎样交互以及怎样分配职责。
              
            </blockquote>
            
            <div class="page" title="Page 5">
              <div class="section">
                <div class="layoutArea">
                  <div class="column">
                    
                           有一个“简单工厂模式”不属于GoF  23种设计模式,但大部分的设计模式 书籍都会对它进行专门的介绍。  设计模式的基础是:多态。 
                    
                    
                    <div title="Page 8">
                      <h2>
                        面向对象设计原则表 
                      </h2>
                      
                      <div title="Page 8">
                        
                         ***单一职责原则:***类的职责单一,对外只提供一种功能,而引起类变 化的原因都应该只有一个。
                        
                        
                        <div title="Page 8">
                          
                           ***开闭原则:***类的改动是通过增加代码进行的,而不是修改源代码。
                          
                          
                          <div title="Page 8">
                            
                             ***里氏代换原则:***任何抽象类出现的地方都可以用他的实现类进行替 换,实际就是虚拟机制,语言级别实现面向对象功 能。
                            
                            
                            <div title="Page 8">
                              
                               ***依赖倒转原则:***依赖于抽象(接口),不要依赖具体的实现(类),也就 是针对接口编程。
                              
                              
                              <div title="Page 8">
                                <div>
                                  <div>
                                    <div>
                                      
                                       ***接口隔离原则:***不应该强迫用户的程序依赖他们不需要的接口方法。一个接口应该只提供一种对外功能,不应该把所有操作都封装到一个接口中去。
                                      
                                      
                                      <div title="Page 8">
                                        <div>
                                          <div>
                                            <div>
                                              
                                               ***合成复用原则:***如果使用继承,会导致父类的任何变换都可能影响到子类的行为。如果使用对象组合,就降低了这种依赖关系。对于继承和组合,优先使用组合。
                                              
                                            
                                            
                                            <div title="Page 8">
                                              <div>
                                                <div>
                                                  <div>
                                                    
                                                     ***迪米特法则:***一个对象应当对其他对象尽可能少的了解,从而降 低各个对象之间的耦合,提高系统的可维护性。例 如在一个程序中,各个模块之间相互调用时,通常 会提供一个统一的接口来实现。这样其他模块不需 要了解另外一个模块的内部实现细节,这样当一个 模块内部的实现发生改变时,不会影响其他模块的 使用。(黑盒原理)

最后修改于 2015-11-03