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

php网站后台管理系统源码o2o的四种营销模式

php网站后台管理系统源码,o2o的四种营销模式,国内特效网站,凡科做商品网站的教学视频设计模式#xff08;Design pattern#xff09;是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码让代码更容易被他人理解 设计模式的运用#xff0c;有助于代码的维护与拓展。任何模式的出现#xff0c;都是为了解决一些特定的场景的耦合问题Design pattern是一套被反复使用的代码设计经验的总结。使用设计模式的目的是为了可重用代码让代码更容易被他人理解 设计模式的运用有助于代码的维护与拓展。任何模式的出现都是为了解决一些特定的场景的耦合问题以达到对修改封闭对扩展开放的效果。 1、实现Build步骤 1、创建实体类2、创建实体内部build类3、实体内部类返回实体类4、实体类创建内部类构造函数/*** 作者created by meixi* 邮箱15913707499163.com* 日期2018/12/14 11*/ public class PersonBuildertest {private String name;private int idd;public PersonBuildertest(Builder builder) {this.name builder.name;this.idd builder.idd;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getIdd() {return idd;}public void setIdd(int idd) {this.idd idd;}public static class Builder {private String name;private int idd;public Builder name(String namein) {this.name namein;return this;}public Builder idd(int id){this.idd id;return this;}public PersonBuildertest build(){return new PersonBuildertest(this);}} } 使用方法 PersonBuildertest buildertest builder.name(那么).idd(2).build(); Log.i(lgq,builerttttbuildertest.getName()); 12-14 13:45:03.313 21756-21756/? I/lgq: builertttt那么 2、原型模式 实现步骤 1、实现Cloneable接口 2、重写Object的clone方法 3、实现clone方法中的拷贝逻辑 public class Clonetest implements Cloneable{private String name;private int age;public Clonetest(){}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}Overridepublic Object clone(){Clonetest personnull;try {person(Clonetest)super.clone();person.namethis.name;person.agethis.age;} catch (CloneNotSupportedException e) {e.printStackTrace();}return person;} }使用方法 Clonetest pnew Clonetest(); p.setAge(18); p.setName(张三);Clonetest p1 (Clonetest) p.clone();p1.setName(李四); Log.i(lgq,builerttttp1.getName()....p1.getAge()); 12-14 13:45:03.313 21756-21756/? I/lgq: builertttt李四....18 3、单例模式的实现步骤 1、静态实例 2、私有化构造方法 3、静态获取实例的函数双重null判断synchronize同步处理—— 使用synchronized 进行同步处理并且双重判断是否为null我们看到synchronized (Singleton.class)里面又进行了是否为null的判断这是因为一个线程进入了该代码如果另一个线程在等待这时候前一个线程创建了一个实例出来完毕后另一个线程获得锁进入该同步代码实例已经存在没必要再次创建因此这个判断是否是null还是必须的。 public class Singleton {     private static volatile Singleton instance null; private Singleton(){     }       public static Singleton getInstance() {         if (instance null) {             synchronized (Singleton.class) {                 if (instance null) {                     instance new Singleton();                 }             }         }         return instance;     } } activity管理类 public class ActivityManager { private static volatile ActivityManager instance; private StackActivity mActivityStack new StackActivity(); private ActivityManager(){ } public static ActivityManager getInstance(){ if (instance null) { synchronized (ActivityManager.class) { if (instance null) { instance new ActivityManager(); } } return instance; } public void addActicity(Activity act){ mActivityStack.push(act); } public void removeActivity(Activity act){ mActivityStack.remove(act); } public void killMyProcess(){ int nCount mActivityStack.size(); for (int i nCount - 1; i 0; i--) { Activity activity mActivityStack.get(i); activity.finish(); } mActivityStack.clear(); android.os.Process.killProcess(android.os.Process.myPid()); } } 4、观察者模式 主要三个类 1、 public interface Observer {     void update(int id,String param); } 2、 public interface Subject {       /**      * 注册一个观察者      */     void addObserver(Observer observer);       /**      * 删除一个观察者      *      * return 是否删除成功      */     boolean removeObserver(Observer observer);       /**      * 通知所有的观察者      *      * param id 对应观察者的id      */     void notifyObserver(int id,String param);   } 3、 public class TestObServernotice implements Subject {       private static Subject subject;     private ListObserver observers new ArrayList();       private TestObServernotice() {         // TODO Auto-generated constructor stub     }       public static Subject getInstance() {         if (null subject) {             synchronized (TestObServernotice.class) {                 if (null subject)                     subject new TestObServernotice();             }         }         return subject;     }       Override     public void addObserver(Observer observer) {         // TODO Auto-generated method stub         observers.add(observer);     }       Override     public boolean removeObserver(Observer observer) {         // TODO Auto-generated method stub         return observers.remove(observer);     }       Override     public void notifyObserver(int id,String param) {         // TODO Auto-generated method stub         for (Observer observer : observers) {             observer.update(id,param);         }     } } 观察者中注册Observer如MainActivity中注册 private Observer deleteObserver new Observer() {     Override     public void update(int id,String param) {         tomapte.setText(sssssymdparam);//dosomething     } }; TestObServernotice.getInstance().addObserver(deleteObserver); 同时注意删除观察者 Override protected void onDestroy() {     super.onDestroy();     TestObServernotice.getInstance().removeObserver(deleteObserver);     deleteObserver null;     Log.v(lgq, ......11..onDestroy....); } 调用通知观察者主要在receiver中调用fragmentactivity都可以调用跨界面刷新数据 TestObServernotice.getInstance().notifyObserver(0,bundle.getString(cn.jpush.android.ALERT)); 5、命令模式 实现步骤 1创建命令接受者 //命令接收者Receiver public class Tv {public int currentChannel 0;public void turnOn() {System.out.println(lgqThe televisino is on.);}public void turnOff() {System.out.println(The television is off.);}public void changeChannel(int channel) {this.currentChannel channel;System.out.println(Now TV channel is channel);} } 2定义命令的接口声明执行的方法。 //执行命令的接口 public interface Command {void execute(); }3命令接口实现对象 //开机命令ConcreteCommand获取接受者类实现命令 public class CommandOn implements Command {private Tv myTv;public CommandOn(Tv tv) {myTv tv;}public void execute() {myTv.turnOn();} } 4要求命令对象执行请求通常会持有命令对象 //可以看作是遥控器Invoker public class Control {private Command onCommand, offCommand, changeChannel;public Control(Command on) {onCommand on;}public void turnOn() {onCommand.execute();}// public void turnOff() { // offCommand.execute(); // } // // public void changeChannel() { // changeChannel.execute(); // } } 5组装命令对象和接收者 // 命令接收者ReceiverTv myTv new Tv();// 开机命令ConcreteCommondCommandOn on new CommandOn(myTv);// on.execute();// 命令控制对象Invoker组装接受者命令对象Control control new Control(on);// 开机control.turnOn();
http://www.pierceye.com/news/831730/

相关文章:

  • 网站脑图怎么做云伙伴小程序开发公司
  • 网站设置兼容模式怎么弄wordpress文件架构
  • 网站模块顺序调整网易对象存储wordpress
  • 深圳网络建设网站郑州网站优化服务
  • 辽阳专业建设网站公司网站html动态效果代码
  • 微信上可以做网站吗网页设计作业讲解
  • 长春好的做网站公司潍坊 网站
  • 做网站自己装服务器谷歌排名规则
  • 58.搜房等网站怎么做效果才好商贸公司企业简介模板
  • 中国最早做网站是谁卖网站怎样做
  • 张店专业网站优化哪家好书画工作室网站模板网站建设
  • 兰州网站制作怎么样青海哪家做网站的公司最大
  • 云龙湖旅游景区网站建设招标网站升级改版需要几天
  • 高端大气网络设计建设公司网站织梦模板沈阳模板建站哪家好
  • 郑州哪有做网站的高端网站建设与制作
  • 江阴网站网站建设蓝色 宽屏 网站 模板下载
  • 网站建设设计大作业重庆公共信息交易资源网
  • 做公司网站的多少钱公司建网站价格
  • 河间米各庄网站建设制作网站页面模板 建设中
  • wordpress首页添加站点统计小工具住房城乡建设部门门户网站
  • 网站建设在哪块做创业园网站建设
  • 郑州搭建网站公司互联网公司网站建设的目的
  • 响应式视频网站什么是权重高的网站
  • 做教育网站挣钱我的网站域名是什么
  • django 网站开发实例哪里可以检测胎儿性别
  • 刷排名凡搜网站宝微信5000人接推广费用
  • 网站优化外包服务专业网站建设服务商
  • 江西企业网站建设费用wordpress正在执行例行维护_请一分钟后回来.
  • 苏宁推客如何做网站创建一个网站的步骤
  • 优化网站广告优化东莞美食网站建设报价