设计模式->数据存储,视图UI,业务逻辑控制数据的传递 ,单例模式,工厂模式,架构模式【开发框架MVC(大智慧)】

1:单例模式 属于创建型模式, 提供了一种访问其唯一的对象的方式
2:工厂模式 属于创建型模式, 为了解决实列化对象产生重复的问题。
3:MVC 模式 这种模式用于应用程序的分层开发Model-View-Control 是一种分层设计的模式
模型(数据的存储Mysql等)---->视图(页面显示,UI层,负责接收用户的输入数据)—>控制器(业务逻辑控制,将用户在View里输入的数据传入到model数据库存储,或者将数据库中存储的数据拿出来发送给view视图进行显示)
4:单例模式
5:单例模式

单例模式

属于创建型模式,是一种创建对象的最佳方式。
涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
public class SingleObject {
//创建 SingleObject 的一个对象
private static SingleObject instance = new SingleObject();
//让构造函数为 private,这样该类就不会被实例化
private SingleObject(){}
//获取唯一可用的对象
public static SingleObject getInstance(){
return instance;
}
public void showMessage(){
System.out.println(“Hello World!”);
}
}

public class SingletonPatternDemo {
public static void main(String[] args) {
//不合法的构造函数
//编译时错误:构造函数 SingleObject() 是不可见的
//SingleObject object = new SingleObject();
//获取唯一可用的对象
SingleObject object = SingleObject.getInstance();
//显示消息
object.showMessage();
}
}

工厂模式 implements 拓展至接口类 谁谁谁 是creator和其他语言通用的

属于创建型模式,它提供了一种创建对象的最佳方式。
在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。
创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。
优点: 1、一个调用者想创建一个对象,只要知道其名称就可以了。 2、扩展性高,如果想增加一个产品,只要扩展一个工厂类就可以。 3、屏蔽产品的具体实现,调用者只关心产品的接口。
缺点:每次增加一个产品时,都需要增加一个具体(类和对象 ) 实现工厂,使得系统中类的个数成倍增加
在这里插入图片描述
1 package factorymode;
/**

  • 工厂模式简单例子
  • @author Administrator

*/
//具体代码中 对工厂类的实际调用
public class FactoryDemo {
public static void main(String[] args) {
IFruit fruit = Factory.getFrit(“橘子”);
if(fruit != null) {
System.out.println(fruit.get());
} else {
System.out.println(“不存在”);
}
}

}

//工厂类
class Factory {
public static IFruit getFrit(String name) {
//根据调用者传进来的描述,返回调用者所需要的对象实例
if(name.equals(“苹果”)) {
return new Apple();
} else if (name.equals(“橘子”)) {
return new Orange();
} else {
return null;
}
}
}

//工厂的接口
interface IFruit {
public String get();
}

//拓展水果接口的苹果类
class Apple implements IFruit {
public String get() {
return “采摘苹果”;
}
}
//拓展水果接口的橘子类
class Orange implements IFruit {
public String get() {
return “采摘橘子”;
}
}

//********* 工厂模式 Crteator的Platform的SDK判断示例 *****************//

6_公主酱要挺住

//其他类中的调用
import platform from ‘./utils/Platform’;
Platform.showBannerAd(“686934d3fc524b8d90a64d3bc04bd1de”,1);
platform.setUserLocalStorage(STORAGE_KEY, new Date()).then((msg) => {
console.log(msg);
}).catch((msg) => {
console.warn(msg);
});

//相当于工厂类
let platformFactory: IPlatform;
switch (cc.sys.platform) {
case cc.sys.WECHAT_GAME:
platformFactory = new WeChatPlatform();
break;
default:
platformFactory = n

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值