当前位置:  编程技术>移动开发
本页文章导读:
    ▪大屏台历异步加载每天比赛数目并显示在日历里        大屏日历异步加载每天比赛数目并显示在日历里 #import <QuartzCore/QuartzCore.h> #import "CalendarController.h" #import "TdCalendarView.h" #import "WaitDialog.h" #import "JSONParser.h" #import "FunUtil.h" @implementation Calen.........
    ▪ Facade(门脸)模式        Facade(门面)模式 Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个.........
    ▪ java承继复习       java继承复习 package com.edison; public class ExtendAct { /** 先给父类成员变量分配内存空间,然后初始化父类构造方法,接着给子类成员变量分配内存空间,最后初始化子类构造方法 */ public static .........

[1]大屏台历异步加载每天比赛数目并显示在日历里
    来源: 互联网  发布时间: 2014-02-18
大屏日历异步加载每天比赛数目并显示在日历里

#import <QuartzCore/QuartzCore.h>
#import "CalendarController.h"
#import "TdCalendarView.h"
#import "WaitDialog.h"
#import "JSONParser.h"
#import "FunUtil.h"
@implementation CalendarController
@synthesize calendarView;
@synthesize currentSelectDate;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.title = @"比赛时间";
		//self.view.backgroundColor = [UIColor whiteColor];
		//self.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"back.png"]]; 
		calendarView = [[TdCalendarView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
		calendarView.backgroundColor = [UIColor whiteColor];
		//calendarView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"back.png"]]; 
		[self.view addSubview:calendarView];
		[calendarView setDayFlag:15 flag:-1];
		calendarView.calendarViewDelegate = self;
    }
    return self;
}

- (void) selectDateChanged:(CFGregorianDate) selectDate{
	currentSelectDate = selectDate;
	NSLog(@"selectDateChanged catch:%d年%d月%d日",selectDate.year,selectDate.month,selectDate.day);
}
- (void) monthChanged:(CFGregorianDate) currentMonth viewLeftTop:(CGPoint)viewLeftTop height:(float)height{
	NSLog(@"monthChanged catch:%d",currentMonth.month);
	self.currentSelectDate = currentMonth;
	[NSThread detachNewThreadSelector:@selector(fetchdata) toTarget:self withObject:nil];
}
- (void) beforeMonthChange:(TdCalendarView*) calendarView willto:(CFGregorianDate) currentMonth{
	[[self calendarView] clearAllDayFlag];
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code.
}
*/

- (void)viewDidAppear:(BOOL)animated{
	[super viewDidAppear:animated];
	
}
-(void)fetchdata{
	NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
	[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
	int maxDay = [[self calendarView] getDayCountOfaMonth:currentSelectDate];
	NSString *dataURL =@"";
	NSLog(@"dataURL:%@",dataURL);
	NSArray *data = [JSONParser loadData:dataURL isAllValues:NO valueForKey:@"list"];
	[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
	[self performSelectorOnMainThread:@selector(showCount:) withObject:data waitUntilDone:NO];
	[pool release];
}
-(void)showCount:(NSArray *)data{
	int count = [data count];
	NSLog(@"showChange:%d",count);
	for(int i = 0;i<count-1;i++){
		NSArray *bf = [data objectAtIndex:i];
		if([bf valueForKey:@"day"]!=nil){
			int day = [[bf valueForKey:@"day"]intValue];
			int count = [[bf valueForKey:@"count"]intValue];
			[calendarView setDayFlag:day flag:count];
		}
	}
	[calendarView setNeedsDisplay];
}

- (void)dealloc {
	[calendarView release];
    [super dealloc];
}


@end
 

    
[2] Facade(门脸)模式
    来源: 互联网  发布时间: 2014-02-18
Facade(门面)模式
Facade(外观)模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。他是为子系统中的一组接口所提供的一个一致的界面。
应用
  老旧的code(尤其是将C的代码转成C++代码)或者即便不是老旧code,但涉及多个子系统时,除了重写全部代码(对于老旧code而言),我们还可能采用这样一种策略:   重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。   这在某种意义上与Adapter及Proxy有类似之处,但是,Proxy(代理)注重在为Client-Subject提供一个访问的中间层,如CORBA可为应用程序提供透明访问支持,使应用程序无需去考虑平台及网络造成的差异及其它诸多技术细节;Adapter(适配器)注重对接口的转换与调整;而Facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。
编辑本段操作
1.、
  Facade一个典型应用就是数据库JDBC的应用,如下例对数据库的操作:   public class DBCompare {   Connection conn = null;   PreparedStatement prep = null;   ResultSet rset = null;   try {   Class.forName( "<driver>" ).newInstance();   conn = DriverManager.getConnection( "<database>" );   String sql = "SELECT * FROM <table> WHERE <column name> = ?";   prep = conn.prepareStatement( sql );   prep.setString( 1, "<column value>" );   rset = prep.executeQuery();   if( rset.next() ) {   System.out.println( rset.getString( "<column name" ) );   }   } catch( SException e ) {   e.printStackTrace();   } finally {   rset.close();   prep.close();   conn.close();   }   }   上例是Jsp中最通常的对数据库操作办法.
2、
  在遇到以下情况使用Facade模式:   1、当你要为一个复杂子系统提供一个简单接口时。子系统往往因为不断演化而变得越来越复杂。大多数模式使用时都会产生更多更小的类。这使得子系统更具可重用性,也更容易对子系统进行定制,但这也给那些不需要定制子系统的用户带来一些使用上的困难。   Facade可以提供一个简单的缺省视图,这一视图对大多数用户来说已经足够,而那些需要更多的可定制性的用户可以越过Facade层。   2、客户程序与抽象类的实现部分之间存在着很大的依赖性。引入Facade将这个子系统与客户以及其他的子系统分离,可以提高子系统的独立性和可移植性。   3、当你需要构建一个层次结构的子系统时,使用Facade模式定义子系统中每层的入口点,如果子系统之间是相互依赖的,你可以让它们仅通过Facade进行通讯,从而简化了它们之间的依赖关系。
编辑本段优缺点
  Facade模式有下面一些优点:
1、
  它对客户屏蔽子系统组件,因而减少了客户处理的对象的数目并使得子系统使用起来更加方便。
2、
  它实现了子系统与客户之间的松耦合关系,而子系统内部的功能组件往往是紧耦合的。   松耦合关系使得子系统的组件变化不会影响到它的客户。Facade模式有助于建立层次结构系统,也有助于对对象之间的依赖关系分层。Facade模式可以消除复杂的循环依赖关系。这一点在客户程序与子系统是分别实现的时候尤为重要。   在大型软件系统中降低编译依赖性至关重要。在子系统类改变时,希望尽量减少重编译工作以节省时间。用Facade可以降低编译依赖性,限制重要系统中较小的变化所需的重编译工作。Facade模式同样也有利于简化系统在不同平台之间的移植过程,因为编译一个子系统一般不需要编译所有其他的子系统。
3、
  如果应用需要,它并不限制它们使用子系统类。因此你可以在系统易用性和通用性之间加以选择。

    
[3] java承继复习
    来源: 互联网  发布时间: 2014-02-18
java继承复习
package com.edison;

public class ExtendAct {

	/** 先给父类成员变量分配内存空间,然后初始化父类构造方法,接着给子类成员变量分配内存空间,最后初始化子类构造方法 */
	public static void main(String[] args) {
		A b = new B();
		/** 2.父类的引用不能调用子类的属性或方法 */
		System.out.println("姓名" + b.name);
		System.out.println("b.setName()=" + b.setName());
		// System.out.println
		// ("年龄"+b.age);/*这里得不到b的age属性,因为父类引用指向子类对象时,父类的引用不能调用子类的属性或方法*/
	}
}

class A {

	/** 3.初始化类之前要先给成员变量分配内存空间 */
	String name = setName();

	String setName() {
		System.out.println("给父类name属性赋值");
		return "Parent";
	}

	/** 1.父类的引用不能调用子类的属性或方法 */
	public A() {
		System.out.println("父类构造方法");
	}
}

class B extends A {
	int age = setAge();

	public B() {
		System.out.println("子类构造方法");
	}

	int setAge() {
		System.out.println("给age属性赋值");
		return 15;
	}

	String setName() {
		System.out.println("给子类name属性赋值");
		return "aaa";
	}
}


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3