Bean对象封装,数据分离

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface Bean : NSObject


@property (nonatomic,copy) NSString *dec;
@property (nonatomic,copy) NSString *pageCount;
@property (nonatomic,copy) NSString *imageName;
@property (nonatomic,strong) UIImage *image;

-(instancetype)initWithDict:(NSDictionary *) dict;
/**
 *  快速创建对象,赋值对象
 *
 *  @param dict <#dict description#>
 *
 *  @return <#return value description#>
 */
+(instancetype)initBean:(NSDictionary *) dict;
+(NSArray *)appList;
@end



#import "Bean.h"
@implementation Bean
-(UIImage *)image{
    if(_image==nil){
        _image=[UIImage imageNamed:self.imageName];
    }
    return _image;
}
-(instancetype) initWithDict:(NSDictionary *)dict{
    self=[super init];
    if(self){
        //方法1
        //        self.dec=dict[@"dec"];
        //        self.pageCount=dict[@"id"];
        //        self.imageName=dict[@"imageName"];
        //方法2
        //        [self setValue:dict[@"dec"] forKey:@"dec"];
        //        [self setValue:dict[@"pageCount"] forKey:@"pageCount"];
        //        [self setValue:dict[@"imageName"] forKey:@"imageName"];
        //方法3
        [self setValuesForKeysWithDictionary:dict];
        
    }
    return self;
}
+(instancetype)initBean :(NSDictionary *)dict{
    return [[self alloc] initWithDict:dict];
}

//优化代码
+(NSArray *)appList{//懒加载
        NSString *path=  [[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil];
        //2.获取plist 赋值到数组
        NSArray  *array=[NSArray arrayWithContentsOfFile:path] ;
        //3.创建一个临时???数组
        NSMutableArray *arrayM =[NSMutableArray array];
        //4.遍历
        for (NSDictionary *dict in array) {
            //5.赋值
            // Bean *bean =  [Bean initBean:dict];
            //6.增加到临时???数组
            [arrayM addObject:[Bean initBean:dict]];
        }
    return arrayM;
}
@end


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. JavaBean 是指符合 Java Bean 规范的 Java 类。它是一种 Java 语言编写的可重用组件,可以用来封装数据和行为。JavaBean 常用于基于 Java 的应用程序的开发,如 JavaEE 应用程序。 2. 表单 Bean 是一种特殊的 JavaBean,用于收集 HTML 表单中的数据。语法上,表单 Bean 应该具有以下特点: - 有一个无参数的构造函数 - 每个表单参数都应该有对应的 getter 和 setter 方法 3. 当客户端提交一个表单时,Web 服务器收集表单数据并使用表单 Bean 进行数据封装。对于每个表单参数,Web 服务器调用相应的 setter 方法进行数据设置。 4. 在内置对象的传递中,JavaBean 可以在 Servlet 之间或 JSP 页面之间通过请求对象或会话对象进行传递。一般来说,JavaBean 的生存周期与请求或会话的生存周期相同,并且在整个请求或会话过程中都可以访问到。 ### 回答2: 1. JavaBean是一种特殊的Java类,具有以下两种种类和作用: a. 符合JavaBean规范的普通JavaBean:这种JavaBean是一个具有私有字段、公共setter和getter方法的类,用于封装数据。它的作用是在Java程序中进行数据传递和操作,提供简单的数据封装和访问。 b. GUI组件Bean:这种JavaBean是用于创建和管理图形用户界面(GUI)的可重用组件,例如按钮、文本框等。它的作用是简化GUI的开发,提高代码的可重用性和可维护性。 2. 表单Bean的语法和收集过程:表单Bean是指用于接收和处理HTML表单数据的JavaBean对象。表单Bean的语法要求与普通JavaBean相同,根据表单中的输入元素名称,提供对应的私有字段和公共setter方法。 表单参数的收集过程大致如下: a. 在HTML表单中,用户通过输入框、下拉菜单等元素输入数据。 b. 在表单提交时,浏览器将用户输入的数据按照表单中元素的名称进行编码,并发送到服务器。 c. 在服务器端后台,通过使用Java的参数传递机制,将编码后的表单数据传递给表单Bean对象。 d. 表单Bean对象通过解析和提取表单数据,并将其存储在对应的私有字段中。 e. 程序可以通过调用表单Bean的公共getter方法获取表单数据,进行后续处理和操作。 3. 在内置对象的传递过程中,有以下特点: a. 内置对象包括request、response、session等,它们在服务器端为每个客户端请求创建临时对象。 b. 内置对象的传递是通过Java的参数传递机制实现的,即将内置对象作为参数传递给其他Java类或方法使用。 c. 内置对象的传递具有隐式性,不需要显式地创建和传递对象,而是由服务器自动完成。 d. 在内置对象传递过程中,可以通过调用内置对象的方法来获取或操作与当前客户端请求相关的信息。例如,可以使用request对象获取用户提交的表单数据,使用session对象在不同页面之间共享数据等。 ### 回答3: JavaBean的种类有以下几种: 1. 实体类JavaBean:用于存储数据的实体类,一般包含私有的成员变量、公有的getter和setter方法以及无参构造方法。 2. 命名JavaBean:主要用于事件处理、业务逻辑等,不一定需要有属性。 3. GUI控制器JavaBean:用于实现GUI界面和业务逻辑的分离,一般包含对界面组件的引用和事件处理方法。 4. 配置JavaBean:用于封装配置信息,一般包含各种配置属性的setter和getter方法。 5. Web组件JavaBean:用于处理客户端提交的表单数据,一般包含表单参数的setter和getter方法。 表单Bean的语法: 表单Bean是一种用于收集表单参数的JavaBean。其语法与普通的JavaBean相似,需要定义私有的实例变量,然后提供公有的setter和getter方法来设置和获取表单参数的值。表单Bean还需要提供无参构造方法和重写toString方法,方便其他类使用。 表单参数的收集过程: 1. 定义一个表单Bean,包含与表单参数一一对应的私有实例变量及对应的setter和getter方法。 2. 在表单的JSP页面中,使用HTML表单元素定义需要收集的参数,并设置其name属性值为对应的表单Bean的属性名。 3. 在后端的Servlet类中,通过request.getParameter方法获取表单参数的值,并调用表单Bean的setter方法将其值设置到表单Bean的实例变量中。 4. 处理表单数据,如验证、保存等操作,可以使用表单Bean的getter方法获取表单参数的值进行处理。 内置对象的传递特点: 在Java中,有一些对象是由容器(例如Servlet容器或JSP引擎)自动创建的,称为内置对象。这些内置对象具有特定的作用和传递特点: 1. 内置对象是全局可访问的,无需通过任何引用来获取。 2. 内置对象的作用范围在特定的环境(如Servlet或JSP)内。 3. 内置对象的生命周期由容器进行管理,无需手动创建或销毁。 4. 内置对象在不同的请求之间共享数据,可以在不同的组件中传递数据。 5. 内置对象的类型和作用在不同的容器中可能有所不同,例如在Servlet中常见的内置对象有HttpServletRequest、HttpServletResponse等,而在JSP中常见的内置对象有request、response等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值