码迷,mamicode.com
首页 > 其他好文 > 详细

OOP 思想 和 设计原则 及24种设计模式

时间:2018-07-04 22:51:44      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:模板方法   替换   模块   绑定   而在   solid原则   结构型   桥接模式   实现   

oop思想:封装、继承、多态            把组件实现和接口分开,并且让组件具有多态性
 
    面向对象编程是一种解决软件复用的设计和编程方法,这种方法把软件中相近相似的操作逻辑和操作应用数据、状态以类的形式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
    
封装: 封装可以使类具有独立性和隔离性;保证类的高内聚。只暴露给类外部或子类必须的属性和操作。
 
继承:对现有类的一种复用机制。一个类如果继承现有的类,则这个类将拥有被继承类的所有菲斯有特性(属性和操作)。这里指的继承包含:类的继承和接口的实现。
 
多态:多态是在继承的基础上实现的。多态的三个要素:继承、重写和父类引用指向子类对象。父类引用指向不同的子类对象时,调用相同的方法,呈现出不同的行为;几十类多态特性。多态可以分成编译时多态和运行时多态。
 
 
 
oop 五大设计原则(SOLID原则)    外加  迪米特法则  和  组合优于继承原则(合成复用原则):
一、单一职责原则
        单一职责有2个含义,一个是避免相同的职责分散到不同的类中,另一个是避免一个类承担太多职责。减少类的耦合度,提高类的复用性。
 
二、接口隔离原则
    表明客户端不应该被强迫实现一些他们不会使用的接口,应该把胖接口中的方法分组,然后用多个接口代替它,每个接口服务于一个子模块。简单说,就是使用多个专门的接口比使用单个接口好很多。
    该原则观点如下:
        1、一个类对另外一个类的依赖性应当是建立在最小的接口上
        2、客户端程序不应该依赖它不需要的接口方法。
 
三、开放-封闭原则
    open模块的行为必须是开放的、支持扩展的,而不是僵化的。
    closed在对模块的功能进行扩展时,不应该影响或大规模影响已有的程序模块。一句话概括:一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。
    核心思想就是对抽象编程,而不对具体编程。
 
四、替换原则
    子类型必须能够替换掉他们的父类型、并出现在父类能够出现的任何地方。
    主要针对继承的设计原则
    1、父类的方法都要在子类中实现或者重写,并且派生类只实现其抽象类中生命的方法,而不应当给出多余的,方法定义或实现。
    2、在客户端程序中只应该使用父类对象而不应当直接使用子类对象,这样可以实现运行期间绑定。
 
五、依赖倒置原则
    上层模块不应该依赖于下层模块,他们共同依赖于一个抽象(父类不能依赖子类,他们都要一类抽象类)
    抽象不能依赖于具体,具体应该要依赖于抽象
 
 
24种设计模式(gof23+1)
        创建型模式:
            1、简单工厂模式(不包含在gof23中)
            2、工厂模式
            3、抽象工厂模式
            4、单例模式
            5、原型模式
            6、创建者模式
        结构型模式:
            1、组合模式
            2、装饰者模式
            3、外观模式
            4、适配器模式
            5、代理模式
            6、享元模式
            7、桥接模式
        行为型模式
            1、观察者模式
            2、策略者模式
            3、状态模式
            4、中介模式
            5、模板方法
            6、命令模式
            7、备忘录模式
            8、访问者模式
            9、解释器模式
            10、迭代器模式
            11、职责链模式
 

OOP 思想 和 设计原则 及24种设计模式

标签:模板方法   替换   模块   绑定   而在   solid原则   结构型   桥接模式   实现   

原文地址:https://www.cnblogs.com/hzkj/p/9265538.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!