裝飾模式:以對客戶端透明的方式擴展對象的功能
裝飾模式類圖如下:
我們分析一下類圖:
Girl:女孩接口,定義瞭一個getName()方法
XiaoWang:女孩的實現類,她實現瞭getName方法,
Decorator:裝飾類,當我們想要擴展小王的方法時,又不能改變她的代碼,也不推薦使用繼承,那[……]
只講重點的設計教學,立刻學習網頁教學網誌!
裝飾模式:以對客戶端透明的方式擴展對象的功能
裝飾模式類圖如下:
我們分析一下類圖:
Girl:女孩接口,定義瞭一個getName()方法
XiaoWang:女孩的實現類,她實現瞭getName方法,
Decorator:裝飾類,當我們想要擴展小王的方法時,又不能改變她的代碼,也不推薦使用繼承,那[……]
代理模式;給某個對象提供一個代理對象,由代理對象持有對原對象的引用。
代理模式就比較符合中國人含蓄的性格,假如有個姑娘想要找個對象,但是直接滿大街去喊我要找對象的不是很多吧。大部分的女孩還是傾向於先去找一個媒人,讓媒人來給自己介紹對象。這裡的媒人其實就是女孩的代理對象瞭。
先來看一下類圖:
我們可[……]
享元模式:以共享的方式高效的支援大量的細粒度對象
我們以咖啡為例,一傢咖啡店一天賣出幾千杯咖啡其實這幾千杯也不過是幾十種口味。在Java中你覺得是new幾千次咖啡好還是new幾十次口味好呢?享元模式就是利用的這個原理來共享的變量瞭。
來看一下類圖:
FlavorFactory:口味工廠,根據客戶所[……]
外觀模式:外部系統與子系統的通信必須通過一個統一的對象進行
舉個例子,現在結婚是不是都找婚慶公司啊,為什麼呢?因為如果不找婚慶公司自己籌備的話,我們可能得自己跑去訂酒店,自己去找主持人,自己去找攝像,自己去找車隊。是不是太麻煩瞭點,而有瞭婚慶公司就不一樣瞭,我可以吩咐他去找酒店,找主持人等等。。。
[……]
橋梁模式:將抽象化與實現化脫藕,使二者可以獨立的變化
大傢應該對日志記錄比較熟悉,不知道有沒有自己寫過一個日志處理的程式,你又是如何實現的呢?
今天的橋梁模式就根據一下需求來分析一下:
支援2個以上平臺支援2個以上格式
大傢可以看一下這個需求哈,2個以上,那我就實現2個唄,一般人可能都會這樣想。然後[……]
策略模式:使算法在不影響客戶端的情況下發生變化。
例如某寶上的一件商品,有時候8折並返現3元、有時候7折返現1元、有時候9折不返現、有時候不打折返現2元等等,我們可以看到這個商品不同時刻要計算利潤或者什麼的時候是不一樣的,現在就可以用到策略模式瞭。
代碼:
public abstract cla[......]
模板方法:在一個抽象類中定義一部分的實現,其餘的定義抽象方法迫使子類實現
相信看瞭上方的定義以後大傢已經理解瞭模板模式,我們來看一下類圖
抽象類定義瞭4個方法,其中operation是私有的,在這個方法裡調用瞭其他三個方法,而方法3是自己實現的。方法1和2是強迫子類實現的。
ClassImpl1,[……]
觀察者模式:多個觀察者對象同時觀察一個主題對象,當這個主題對象發生變化時,會通知所有的觀察者
來看一下下方類圖
Subject:主題類,所有主題的父類,負責對觀察者的管理,有添加觀察者,刪除觀察者,通知所有的方法
SubjectImpl:主題子類,擁有狀態屬性,當狀態改變時會調用父類的notify[……]
iOS開發從入門到精通– UIProgressView進度條&UISlider滑動條。
UIProgressView進度條&UISlider滑動條:
我們要實現上面圖片的效果,在滑動條滑動改變的同時,進度條也跟隨著改變。
在 ViewController.h裡面聲明:vcD4NC[……]
警告對話框UIAlertView和等待提示器UIActivityIndicatorView:
1.UIAlertView簡單一點就是彈框
2.就是所謂的菊花轉圈圈
聲明:註意@interface ViewController : UIViewController這個裡面多瞭一個UIAlertVi[......]
在ViewController.h裡面聲明對象和屬性,並加上代理UITextFieldDelegate:
#import
@interface ViewController : UIViewController{
//定義一個textField
//文本輸入區域
//[......]
每次看到iOS的遠程消息推送,總是感覺很頭大,即便後來項目都做完瞭,還是覺得摸不著遠程推送的脈門,網上介紹的資料雖多,但不是寫的太簡單瞭,就是寫的太詳細瞭,不能一下抓住要點,今天終於能夠抽出點時間,來扒一扒這其中究竟有怎樣的奧秘。
根據蘋果掌控一切的習慣,消息推送也當然不能例外,不論你在哪裡推送,也[……]
滾動視圖UIScrollView高級,協議。
#import @interface ViewController : UIViewController{//協議函數 //定義一個滾動視圖成員變量 UIScrollView * _scrollView; } @end
#i[......]
UIGesture手勢基礎
#import @interface ViewController : UIViewController{ //定義一個視圖對象 UIImageView * _imageView; } @end
#import "ViewCont[......]
UIGesture手勢擴展,平移,滑動,長按
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoa[......]
XIB使用介紹:
首先我們刪除一些不需要的東西:
然後我們創建一個新的視圖控制器
紅色箭頭Also create XIB file要勾選上
這個時候,我們可以看到有三個文件創建成功瞭,其中有一個RootController.xib文件,在這個裡面就看到瞭一個像手機一樣的視圖,我們可以在[……]
導航控制器基礎
實現上面的導航欄,左側按鈕,中間的TITLE,還有右側的test按鈕,和一個播放的按鈕
重新創建一個VCRoot根視圖控制器
#import "AppDelegate.h" #import "VCRoot.h" @interface[......]
#import #import "Car.h" #import "Phone.h" int main(int argc, const char * argv[]) { Car *c1 = [[Car alloc] init];[......]
// // Car.h // 屬性 // // Created by 藍鷗 on 16/7/29. // Copyright © 2016年 luanbin. All rights reserved. // #import @interface Car : NSObject[......]
// // Phone.h // 屬性 // // Created by 藍鷗 on 16/7/29. // Copyright © 2016年 luanbin. All rights reserved. // #import @interface Phone : NSOb[......]
在2014年,蘋果公司的世界開發者大會上,蘋果推出瞭讓所有iOS開發驚訝的新的編程語言Swift。Swift被宣傳為“快速,現代,安全,交互”編程語言。Swift語言簡單易學並且擁有很多提高編程效率的特征。
在Swift語言推出之前,iO[……]
在2014年,蘋果公司的世界開發者大會上,蘋果推出瞭讓所有iOS開發驚訝的新的編程語言Swift。Swift被宣傳為“快速,現代,安全,交互”編程語言。Swift語言簡單易學並且擁有很多提高編程效率的特征。
在Swift語言推出之前,iO[……]