app鎬庝箞鍒锋姇绁ㄥ彲閲囧彇寰俊鍒锋姇绁╝pp鎿嶄綔鍚楋紵
- 浣滆咃細寰俊鎶曠エ
- 鍙戣〃鏃堕棿锛2020-04-22
鐜板湪鏈夊緢澶氱殑鎶曠エ娲诲姩涓嶅湪鏄崟绾殑閲囧彇寰俊鎶曠エ锛岃屾槸閲囩敤app鐨勫舰寮忔潵杩涜鎶曠エ锛岄偅涔堜綘濡傛灉鎯宠杩涜鎶曠エ锛屼綘灏卞繀椤昏涓嬭浇浠栦滑鐨刟pp鎵嶈兘澶熻繘琛屾姇绁紝鎵浠ユ渶杩戝ぇ瀹跺氨鍦ㄧ儲鎭间簡锛岃杩欐牱鐨刟pp鎬庝箞鍒锋姇绁紝娌℃湁鍔炴硶鑳藉瑙e喅杩欎釜闂鍚楋紵鍏跺疄app鎬庝箞鍒锋姇绁ㄦ槸鍙互瑙e喅鐨勶紝閭e氨鏄敤鍒板井淇″埛鎶曠エapp鏉ヨ繘琛屾搷浣滐紝閭d箞濡傛灉澶у鐩墠杩樻病鏈夋壘鍒寰俊鎶曠エapp鐨勮瘽锛岃繖閲屾垜灏卞厛鎶婃垜鑷繁鐩墠鍦ㄧ敤鐨勪竴娆惧埛鎶曠エapp杞欢鐨勪唬鐮佸垎浜粰澶у锛屽ぇ瀹跺鐢ㄤ笅灏卞彲浠ュ嚭鐜扮殑杞欢浜
app鎬庝箞鍒锋姇绁ㄥ彲閲囧彇寰俊鍒锋姇绁╝pp鎿嶄綔鍚楋紵
/// <summary>
/// 鎶借薄瑙傚療绫
/// </summary>
abstract public class Observer{
public abstract void Update();
}
/// <summary>
/// 鍏蜂綋瑙傚療绫
/// </summary>
public class Concreteobserver:Observer{
private string name;
private string observerState;
private ConcreteSubject subject;
public Concreteobserver(ConcreteSubject subject,string name){
this.subject=subject;
this.name= name;
}
public override void Update(){
observerState=subject.GetState();
Console.write(鈥滆瀵熻厈0}鐨勬柊鐘舵佹槸{1}鈥,name,observerState);
}
}
/// <summary>
/// 鎶借薄涓婚绫
/// </summary>
abstract public class Subject(){
private List<observer> observers = new List<observer>() ;
public void? Attach(Observer observer){
observers.Add(Observer);
}
public void Detach(Observer Observer){
observers.Remove(Observer);
}
public void NotifyObservers(){
foreach(Observer o in observers){
o.Update();
}
}
}
/// <summary>
/// 鍏蜂綋涓婚绫
/// </summary>
public class ConcreteSubject:Subject{
private string subjectState;
public string SubjectState{
get{return subjectstate;}
set{subjectstrate=value;}
}
public void GetState(){
return subjectstate;
}
}
//client绔
static void Main(string[] args)
{
ConcreteSubject c = new ConcreteSubject();
Concreteobserver o1 = new Concreteobserver(c,鈥漍鈥);
Concreteobserver o2 = new Concreteobserver(c,鈥漎鈥);
Concreteobserver o3 = new Concreteobserver((c,鈥漐鈥);
c.Attach(o1);
c.Attach(o2);
c.Attach(o3);
c.subjectstate=鈥漚bc鈥;
c.Nofify();
Console.ReadLine();
}
app鎬庝箞鍒锋姇绁ㄥ彲閲囧彇寰俊鍒锋姇绁╝pp鎿嶄綔鍚楋紵
/// <summary>
/// 鎶借薄瑙傚療绫
/// </summary>
abstract public class Observer{
public abstract void Update();
}
/// <summary>
/// 鍏蜂綋瑙傚療绫
/// </summary>
public class Concreteobserver:Observer{
private string name;
private string observerState;
private ConcreteSubject subject;
public Concreteobserver(ConcreteSubject subject,string name){
this.subject=subject;
this.name= name;
}
public override void Update(){
observerState=subject.GetState();
Console.write(鈥滆瀵熻厈0}鐨勬柊鐘舵佹槸{1}鈥,name,observerState);
}
}
/// <summary>
/// 鎶借薄涓婚绫
/// </summary>
abstract public class Subject(){
private List<observer> observers = new List<observer>() ;
public void? Attach(Observer observer){
observers.Add(Observer);
}
public void Detach(Observer Observer){
observers.Remove(Observer);
}
public void NotifyObservers(){
foreach(Observer o in observers){
o.Update();
}
}
}
/// <summary>
/// 鍏蜂綋涓婚绫
/// </summary>
public class ConcreteSubject:Subject{
private string subjectState;
public string SubjectState{
get{return subjectstate;}
set{subjectstrate=value;}
}
public void GetState(){
return subjectstate;
}
}
//client绔
static void Main(string[] args)
{
ConcreteSubject c = new ConcreteSubject();
Concreteobserver o1 = new Concreteobserver(c,鈥漍鈥);
Concreteobserver o2 = new Concreteobserver(c,鈥漎鈥);
Concreteobserver o3 = new Concreteobserver((c,鈥漐鈥);
c.Attach(o1);
c.Attach(o2);
c.Attach(o3);
c.subjectstate=鈥漚bc鈥;
c.Nofify();
Console.ReadLine();
}