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)是双方接触的地方,可以说是双方势力或者地盘的界线
      谁拥有接口的制定权,谁就掌控着控制点,谁就能获得主动权,另一方为被动地位



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


  • 相关阅读:
    oracle unwrap解密工具
    介绍一款国产的矢量图形设计软件--百绘大师
    windows10上安装OpenSSL_1.1.1d_x64
    centos7上安装phantomjs并对页面截屏
    如何用Java Socket实现一个简单的Redis客户端
    cenos上通过yum安装mariadb
    windows上杀掉指定名称的进程
    centos磁盘满时查找大文件清理掉
    为Vertica数据库增加自定义函数to_base64和from_base64
    解决Vertica集群某节点出现Clock skewed告警
  • 原文地址:https://www.cnblogs.com/dandre/p/4507011.html
Copyright © 2011-2022 走看看