zoukankan      html  css  js  c++  java
  • Android架构师之路-oop

      特此声明:本人正在学习android架构知识,此些blog相当于自己的学习笔记,完全手工码字,部分内容借鉴于android研究员高焕堂高老师的ppt讲义,穿插个人领悟,出于弘扬程序员奉献精神,再此分享给感兴趣的朋友!

    1.面向对象oop
       oriented的含义:意味着一种信仰,object-oriented相信任何的软件都是有对象构成,
       而不是Nothing else,由此可以得出总结:电脑语言的设计就简化了写程序只要定义class就可以了
    2.Oriented-Based-Driven-Centered 之间的区别:
      Based:--基于需求,有先后的顺序。例如先进行需求分析,然后基于需求分析的结果(文件)
      而进行后续的软件开发活动,称为:Requirement-based software developer
      俗称:打地基。
      driven:“引导”,当在开发软件的时候,按照指定的模型去开发程序,以用户的使用为北极星,在不
      违背用户需求的情况下开发系统。
      centered:一切的软件开发的活动都是围绕这架构,就是像圣诞节的糖果和礼物一样都挂在圣诞树上
      一样


     对象(Object)
       自然界中我们都认识的东西都是对象,而对于自己不认识的东西我们就理所当然的不认为是成为对象
       ,举个例子:李白自己写的诗文,他认为是对象,但是给他看一个外文诗的时候,他就不认为是对象
       因为他根本不认识这个东西。
       然后是。一旦我们认识了某样东西,我们就可以说出他的特点,并于别的对象做一个对比,其特点包
       括:
       1>对象之特征或者属性
       2>对象之行为
       例如:人有鼻子,胳膊,退等属性,会跑,跳等行为。
       软件之对象(software Object)是有数据(Data)和函数(Function)组成。
     类(Class)
        是群体或者集合,而对象是类中的一份子,类是对象的集合。
    类是一群具有共同重要属性的对象,类的定义就是说明这对象都具有什么的重要特性,软件中的对
    象以数据来表达特性,以函数来表达行为,因此,类的定义就是说明软件中的对象,应包含数据和函数。
     继承(extend)
      对众多的对象加以分门别类,就形成了继承的的体系,衍生类=子类
      子类继承基类(父类)子类和父类如同儿子和爸爸的关系,子类继承父类的所用属性和行为,并且子类还可以自己
      定义属性(data)和行为(函数)。
     表达组合:,扩充功能,和继承类似。
       基类和子类的结构用途:比如轮胎和引擎的关系,引擎带动轮胎运作,彼此是组合关系
        我们在此举个列子:
    创建小线程:
    main(){
    Thread t = new Thread(new Task());//创建轮胎引擎
    t.start();//启动引擎带动轮胎转动,拿到基类对象,通过接口调用子类的函数。
    //t开启小线程去执行run()函数。


    class Task implements Runnable{
    public void run(){
    system.err.println("hello world");
     }

    想要将轮胎和引擎结合起来,那么就必须给Thread(引擎)定义一个接口(Runnable),然后创建Task(轮胎)去实现这个接口,

    接口(interface)=(卡榫函数)
    基类和子类的结构:
    所谓的卡榫(Hook)就是用来结合两个东西的接口,如果两个东西与不同的时间出现,那么一方
    就会预留虚空,给予另一方未来时刻能以实体来填补该空间,两者虚实相依就密合起来,以此实现新陈代谢抽换自如(pnp)
    变与不变的分离:是设计卡榫函数函数以及应用框架之基本原则和手艺
    分离出变与不变部分之后,就可以将不变的部分写在父类别里,而变的部分写在子类别里

    *在Java里,使用抽象(abstract)函数或可覆写(overridable)函数来实现卡榫函数



    Ioc控制反转:
      基类调用子类,主控权在基类上,
      Ioc机制源自于oo语言(c++等)的类别继承体系,c++中基类的函数可以主动的调用子类的函数,这是经典的
      ioc机制。
      基类和子类之间,基类是主控权,通过Hook函数来调用子类
      通常撰写基类在先,而子类在后,这种前辈拥有主导权,进而控制后背之情形,叫做“控制反转”
       默认(Default)行为:基类的主要功能,提供预设值的默认行为,即函数,供子类调用
       继承。
      
      主动性vs被动型api:
      UI = USER INTERFACE.
      从基类的视角去区分主动和被动。
      API:这是一个名词,但是他关联着三个动词:1.定义(define)2.实现(implement)3.呼叫(ioc)
      可讲API分为“主动型”和“被动型”
      
      接口(interface)是双方接触的地方,可以说是双方势力或者地盘的界线
      谁拥有接口的制定权,谁就掌控着控制点,谁就能获得主动权,另一方为被动地位



    通过图片便于理解以上知识:


  • 相关阅读:
    228. Summary Ranges
    227. Basic Calculator II
    224. Basic Calculator
    222. Count Complete Tree Nodes
    223. Rectangle Area
    221. Maximal Square
    220. Contains Duplicate III
    219. Contains Duplicate II
    217. Contains Duplicate
    Java编程思想 4th 第4章 控制执行流程
  • 原文地址:https://www.cnblogs.com/dandre/p/4507011.html
Copyright © 2011-2022 走看看