智能家居项目(一)之基础引入

一、智能家居功能整体流程

请添加图片描述
1.控制区
语音识别模块
socket客户端
2.外设区
继电器组控制灯,远程终端子系统,窗帘等,火灾报警器,摄像头

其中远程终端子系统(WemosD1)的作用是:当主系统的接口不够或者主系统满足不了现有的功能需求时,我们会引入一个子系统,我们会把族系统控制的一些指令传给子系统,让子系统来进行控制

二、设计模式

1、什么是设计模式(面试考点)
设计模式有23种,我用过工厂模式,之所以我学设计模式的原因是,以前我写代码比较乱,在添加功能的时候,会导致其他功能的代码被破坏,所以我去学的设计模式

2、什么是类和对象
类:是一种用户定义的引用数据类型,在C语言中也称之为结构体

struct Animal{--------->int age; ---------->成员的属性
    int sex;
    void *peat();------>成员的方法
 
};

对象:类的一种具体对象

struct Animal dog;
struct Animai cat;

实例:

#include <stdio.h>
 
struct Animal{          //类
        char name[32];
        int eat;
        int age;
        int sex;
        void (*peat)();
};
void dogEat(){
        printf("dog chi shi\n");
}
void catEat(){
        printf("cat chi yu\n");
}
void personEat(){
        printf("person chi mi\n");
}
 
int main(){
 
        struct Animal dog;
        struct Animal cat;
        struct Animal person;   //对象,事务的具象
 
        dog.peat = dogEat;
        cat.peat = catEat;
        person.peat = personEat;
 
        dog.peat();
        cat.peat();
        person.peat();
 
        return 0;
}

三、C语言中结构体的新玩法

#include <stdio.h>
 
struct Animal{          //类
        char name[32];
        int eat;
        int age;
        int sex;
        void (*peat)();
};
void dogEat(){
        printf("dog chi shi\n");
}
void catEat(){
        printf("cat chi yu\n");
}
void personEat(){
        printf("person chi mi\n");
}
 
int main(){
 
        struct Animal dog = {   //对象,事务的具象
                .name = "a huang",
                .peat = dogEat
        };
        struct Animal cat = {
                .name = "a mao",
                .peat = catEat
        };
        struct Animal person = {
                .name = "a ren",
                .peat = personEat
        };
 
        dog.peat();
        cat.peat();
        person.peat();
        printf("%s\n",dog.name);
 
        return 0;
}

四、工厂模式概念引入

  • 工厂模式是最常用的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式

  • 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象

在这里插入图片描述
如上图中,左侧可以比拟为一个工厂,工厂里有很多个可能,右侧可比拟一个main函数的入口,当我们用到哪个功能时, 就在main函数中调用工厂里的功能接口(API)就可以了,如果想要在工厂里建立一个新功能时,直接新添加一个文件就好,工厂中一个独立的文件就代表是一个独立的功能,各个功能之间互不干扰,比如你改错了一个功能文件,但不影响其他的功能文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值