当前位置: 首页 > news >正文

乐陵色情服务在哪一条sem优化策略

乐陵色情服务在哪一条,sem优化策略,wordpress 竖导航栏,做细胞激活的母液网站MVC框架的简介 在与师姐和团队成员沟通之后,我近期对MVC架构有了新的思考,MVC,就是将一个具体的程序或者可以说成是软件,以模型(model),视图(view),控制器(controller)来组织代码,从而实现业务逻辑,数据,界面显示分离. Model(模型)是应用程序中用于处理…

MVC框架的简介
在与师姐和团队成员沟通之后,我近期对MVC架构有了新的思考,MVC,就是将一个具体的程序或者可以说成是软件,以模型(model),视图(view),控制器(controller)来组织代码,从而实现业务逻辑,数据,界面显示分离.

  Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。View(视图)是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分.通  常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

在此设计框架上实现了分成,分离,在建立比较复杂的应用程序的时候可以在一个时间专门关注一个方面,分离处理.
以数字类,挑选奇偶数为例,在此我也同样考虑运用了简单工厂模式和工厂模式.

在model中,就是数字类,在此实现相应的业务逻辑(奇偶数判断),以及对Controller传来的数据进行处理,并保存在model之中,在此,为了在三者之间可以构成一个环,model之中就有一个UpdateView函数,来通知view更新来显示数据.获取的数据存储在model中.
在Controller中,仅仅是用来传递view传递过来的数据,其中包括数字的集合和view的信息(供之后model来实现调用),在此,其实可以增加很多控制器逻辑.可以对数据进行处理使其得到 的数据能够符合model的需求.
在view中,是提供全部的界面操作,与用户进行联系,从而得到数据,数据可以是用户输入,员可以是网络中获取,并在view中建立相应的可供model的回调机制,可以是一个接口.

view获取数据,与用户交互并在view中调用Controller来传递数据,Controller来处理选择数据,然后传递给Model进行对应的业务处理.从而构成一个闭环.

需要注意的是这里尊重严格的顺序关系,只能由一个箭头的一端传递到 一个端,从而加强封装性,保密性.使调用接口简单化.
下面是改进的JAVA程序
Event.java

package Event;
import NumberModel.NumberX;
public interface Event{public abstract void updateView(NumberX number);
}

NumberX.java

package NumberModel;import java.util.*;
import Event.*;public abstract  class NumberX{public  abstract   List <Integer> GetNumberList();public abstract boolean GetType();//获得数字类是属于那种类型的数字类,返回FALSE是奇数,返回TURE是偶数public abstract void clear();//清除数字类链表中的数据public abstract void add(Integer i);public abstract boolean IsThisNumber(Integer i);//用来判断是否是该类型的数public abstract NumberX GetInstace();public abstract void Distinguish(List <Integer> list,Event event);//由C层调用传递数据给m层处理
}

OddNumber.java

package NumberModel;
import java.util.*;
import Event.*;
import java.lang.Integer;public class OddNumber extends NumberX{private  ArrayList <Integer> OddList=new ArrayList<Integer>();//建立私有的链表成员private  OddNumber oddNumber=new OddNumber();//声明为私有的固态变量来建立单体public OddNumber(){}@Overridepublic  void  Distinguish(List <Integer> list,Event event){OddList.clear();for(int i=0;i<list.size();i++){if(IsThisNumber(list.get(i))){OddList.add(list.get(i));}}event.updateView(this);//回调,通知V层更新}@Overridepublic  NumberX GetInstace(){return oddNumber;//通过调用此函数来获取单体的对象}@Overridepublic  void clear(){OddList.clear();}@Overridepublic  void add(Integer i){OddList.add(i);}@Overridepublic boolean IsThisNumber(Integer i){if(i%2==0)return false;else return true;}public  boolean GetType()//获得数字类是属于那种类型的数字类,告诉调用者是奇数{return false;}@Overridepublic  List<Integer> GetNumberList(){return OddList;}
}

EvenNumber.java

package NumberModel;
import java.util.*;
import Event.*;
import java.lang.Integer;public class OddNumber extends NumberX{private  ArrayList <Integer> OddList=new ArrayList<Integer>();//建立私有的链表成员private  OddNumber oddNumber=new OddNumber();//声明为私有的固态变量来建立单体public OddNumber(){}@Overridepublic  void  Distinguish(List <Integer> list,Event event){OddList.clear();for(int i=0;i<list.size();i++){if(IsThisNumber(list.get(i))){OddList.add(list.get(i));}}event.updateView(this);//回调,通知V层更新}@Overridepublic  NumberX GetInstace(){return oddNumber;//通过调用此函数来获取单体的对象}@Overridepublic  void clear(){OddList.clear();}@Overridepublic  void add(Integer i){OddList.add(i);}@Overridepublic boolean IsThisNumber(Integer i){if(i%2==0)return false;else return true;}public  boolean GetType()//获得数字类是属于那种类型的数字类,告诉调用者是奇数{return false;}@Overridepublic  List<Integer> GetNumberList(){return OddList;}
}

NumberView.java

package NumberView;
import java.util.*;
import Event.*;
import NumberModel.*;
import NumberController.*;public  class NumberView implements Event {//建立视图类public  void ShowNumber(NumberX NumberExample){//用来显示挑选数的数字List <Integer> List=NumberExample.GetNumberList();//List作为声明来访问数列if(NumberExample.GetType()==true)System.out.println("the Evens is:");elseSystem.out.println("the odds is:");for(int i=0;i<List.size();i++){System.out.print(List.get(i)+" ");}}public void ShowUi(){int n;List <Integer>numberList=new ArrayList<Integer>();Scanner in=new Scanner(System.in);System.out.println("请输入你要输入的数字的个数");n=in.nextInt();System.out.println("请分别输入这些数");for(int i=0;i<n; i++){numberList.add(in.nextInt());}int type;System.out.println("请输入你要输入你要挑选奇数还是偶数,奇数输入0,偶数输入1");n=in.nextInt();SimpleFactory factory=new SimpleFactory();factory.NumberDistinguish(numberList,n,this);}public void updateView(NumberX number){ShowNumber(number);}
}

NumberController.java

package NumberController;
import java.util.*;
import java.lang.Integer;
import Event.*;
import NumberModel.*;public  class NumberController{private NumberX NumberEx=null;//NumberEx作为所具有的number类的引用public NumberController(NumberX Nu){//抽象类的构造函数NumberEx=Nu.GetInstace();//构造函数建立数字类的时候赋值}public void NumberDistinguishController(List<Integer> list,Event event)//list为V层传递进来的链表类//event传递视图类的信息事件{NumberEx.Distinguish(list,event);}public void ChangeNumber(NumberX NumberDate){//用来改变控制器控制的数字类,达到改变NumberEx=NumberDate.GetInstace();}
}

simpleFactory.java 也是此程序的controller层

package NumberController;import java.util.*;
import Event.*;
import NumberController.*;
import NumberModel.*;public class SimpleFactory{public SimpleFactory(){}public void NumberDistinguish(List <Integer> L,int type,Event event){//event传递视图类的信息事件NumberController controller;OddNumber OddNum=new OddNumber();EvenNumber EvenNum=new EvenNumber();if(type==0)controller=new NumberController(OddNum);elsecontroller=new NumberController(EvenNum);controller.NumberDistinguishController(L,event);}}

simpleFactoryMain.java 用来开始执行程序

import java.io.*;
import java.util.*;
import NumberView.*;
import NumberController.*;
import NumberModel.*;public class simpleFactoryMain{public static void main(String []args){NumberView view=new NumberView();//建立一个视图类对象view.ShowUi();//引用函数来显示界面,与用户互动,获取信息
}
}

以下是用C++来实现工厂模式

//Event.h#include "NumberX.h"class Event{
public:virtual void UpdateView(NumberX* );
};
//NumberX.h#include <iostream>
#include <vector>#ifndef MAIN_H_
#define MAIN_H_#include "Event.h"class NumberX{
public:virtual std::vector<int> *GetNumberList()=0;virtual bool GetType()=0;//获得数字类是属于那种类型的数字类,返回0是奇数,返回1是偶数virtual std::vector<int>*GetNumberVector()=0;//得到向量virtual void clear()=0;//清楚所有数据virtual void push(int)=0;//为数字类总增加数据virtual bool IsThisNumber(int i)=0;//判断该数字是否是属于该数字类virtual void Distinguish(std::vector<int> list,Event*event)=0;
};
class EvenNumber:public NumberX{
public:std::vector<int>* GetNumberList();//得到相应的数列的向量bool GetType();//获得数字类是属于那种类型的数字类,告诉调用者是偶数std::vector<int>*GetNumberVector(){return &EvenVector;}void clear(){EvenVector.clear();}//清楚所有数据void push(int i){EvenVector.push_back(i);}bool IsThisNumber(int i);//判断该数字是否是属于该数字类void Distinguish(std::vector<int> list,Event*event){EvenVector.clear();for(int i=0;i<list.size();i++){if(IsThisNumber(list.at(i))){push(list.at(i));}}event->UpdateView(this);//M层的回调来通知V层更新};
private:std::vector<int> EvenVector;//作为向量来存储变量
};bool EvenNumber::IsThisNumber(int i){if(i%2==0)return 1;else return 0;
}std::vector<int> *EvenNumber::GetNumberList(){return &EvenVector;
}
bool EvenNumber::GetType(){return 1;
}class OddNumber:public NumberX{
public:std::vector<int> *GetNumberList();//得到相应的数列的向量bool GetType();//获得数字类是属于那种类型的数字类,告诉调用者是偶数std::vector<int>*GetNumberVector(){return &OddVector;}void clear(){OddVector.clear();}//清楚所有数据void push(int i){OddVector.push_back(i);}bool IsThisNumber(int i){if((i+1)%2==0)return 1;else return 0;}//判断该数字是否是属于该数字类void Distinguish(std::vector<int> list,Event *event){OddVector.clear();for(int i=0;i<list.size();i++){if(IsThisNumber(list.at(i))){push(list.at(i));}}event->UpdateView(this);};
private:std::vector<int> OddVector;//作为向量来存储变量
};
std::vector<int> *OddNumber::GetNumberList(){return &OddVector;
}
bool OddNumber::GetType(){return 0;
}
#endif
//Factory.h#ifndef MAIN_H
#define MAIN_H#include <iostream>
#include <vector>
#include "NumberX.h"
#include"NumberView.h"
#include "Event.h"
#include "NumberController.h"class Factory{//抽象工厂,用来分开处理每个具体的工厂
public:virtual void  NumberDistinguish(std::vector<int> NumberVector,Event *event)=0;//NumberVector作为传递进来的样本
};class EvenFactory:public Factory{
public:void NumberDistinguish(std::vector<int> NumberVector,Event *event){EvenNumber evenNumber;NumberController controller(&evenNumber);controller.NumberDistinguishController(NumberVector,event);}
private:EvenNumber evenVector;//EvenVector作为新建的偶数向量来存储判断的偶数
};class OddFactory:public Factory{
public:void NumberDistinguish(std::vector<int> NumberVector,Event *event){//OddVector作为传递进来的样本OddNumber oddNumber;NumberController controller(&oddNumber);controller.NumberDistinguishController(NumberVector,event);}
private:OddNumber oddVector;//OddVector作为新建的偶数向量来存储判断的奇数
};#endif
//NumberController.h#ifndef MAIN
#define MAIN#include <iostream>
#include <vector>
#include"Event.h"
#include "NumberX.h"
#include "NumberView.h"class NumberController{
private:NumberX *NumberEx;//NumberEx作为所具有的number类
public:NumberController(NumberX *Nu,NumberView vi){//抽象类的构造函数NumberEx=Nu;//构造函数建立数字类的时候赋值}NumberController(NumberX *Nu){//抽象类的构造函数NumberEx=Nu;//构造函数建立数字类的时候赋值}void NumberDistinguishController(vector<int>list,Event *event)//list为V层传递进来的链表类//event传递视图类的信息事件{NumberEx->Distinguish(list,event);}
};
#endif
//NumberView.h#ifndef MAIN_H__
#define MAIN_H__#include <iostream>
#include <vector>#include "NumberX.h"
#include "Event.h"using namespace std;class NumberView:public Event{//建立视图类
public:void ShowNumber(NumberX *NumberExample);//用来显示挑选数的数字void ShowUi();void UpdateView(NumberX*Event);};
void NumberView::UpdateView(NumberX* number){ShowNumber(number);
};
void NumberView::ShowUi(){std::vector<int> NumberVector;int n,temp;cout << "请输入你要输入的数字的个数"<<endl;cin >>n;cout <<"请分别输入这些数"<<endl;for(int i=0;i<n;i++){cin >> temp;NumberVector.push_back(temp);}NumberX *number;EvenFactory evenFactory;OddFactory oddFatory;NumberView view ;number=evenFactory.NumberDistinguish(NumberVector);view.ShowNumber(number);number=oddFatory.NumberDistinguish(NumberVector);view.ShowNumber(number);
}void NumberView::ShowNumber(NumberX *NumberExample){//用来显示挑选数的数字std::vector<int> *v=NumberExample->GetNumberList();//v作为指针来访问数列if(NumberExample->GetType()==1)cout<<"the Evens is:"<<endl;elsecout<<"the odds is:"<<endl;for (std::vector<int>::iterator it = v->begin() ; it != v->end(); ++it)std::cout << ' ' << *it;std::cout << '\n';
}
void 
#endif
//main.cpp#include <iostream>
#include <vector>#include "NumberX.h"
#include "NumberView.h"
#include "NumberController.h"
#include "Factory.h"using namespace std;// 4 3 2 5 4int main(){NumberView view=new View();view.ShowUi();
}
http://www.zhongyajixie.com/news/36983.html

相关文章:

  • 国外做网站用的程序百度关键词竞价价格查询
  • 论坛网站开发教程新闻稿件代发平台
  • 网站设置的建设过程和准备阶段百度官网首页下载
  • 佛山模板网站建设中国新闻发布
  • 做网站购买服务器吗永久免费的网站服务器有哪些软件
  • 运营好的网站制作中心想学编程去哪里找培训班
  • 怎样做网站设计怎样优化网站排名靠前
  • 郑州网站制作培训学校河南seo和网络推广
  • 上传照片的网站赚钱杭州网站建设技术支持
  • 在龙港网站哪里做广州网络营销公司
  • wordpress qq互联插件seo网站推广是什么意思
  • 有哪些好的网站项目今日国际新闻10条
  • 日照手机网站建设seo技巧是什么意思
  • 用动物做logo的旅游网站一站式网站建设
  • 网站建设各单位强化沟通协作全网网络营销推广
  • 小程序开发教程免费官网关键词优化价格
  • 网站优化名词解释国外搜索引擎网站
  • 做填写信息的超链接用什么网站枸橼酸西地那非片
  • 做优化网站怎么优化代码千万不要做手游推广员
  • wordpress需要独立博客如何优化网站首页
  • 用什么软件建手机网站免费crm网站不用下载的软件
  • 机关党建网站建设策划好口碑的关键词优化
  • 江苏哪家做网站排名比较好seo单词优化
  • 新手建网站什么类型好描述优化方法
  • 力洋深圳做网站公司windows优化大师和360哪个好
  • 做网站 php asp.net jsp爱站网ip反域名查询
  • 郑州网站建设没效果优化设计全部答案
  • 旅行社网站建设方案书北京朝阳区
  • 各种网站的区别sem优化软件选哪家
  • 网站建设需要多少钱知乎上往建站