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

成都建设网站首页公司宣传网站制作

成都建设网站首页,公司宣传网站制作,网站做跳转,优秀的电商设计网站有哪些模板方法模式和门面模式模板方法模式代码示例门面模式代码示例门面模式的应用场景模板方法模式 模板方法模式非常简单,就是定义了一个固定的公共流程,整个流程有哪些步骤是事先定义好的,具体的步骤则交由子类去实现。属于行为型设计模式。 简…

模板方法模式和门面模式

  • 模板方法模式
    • 代码示例
  • 门面模式
    • 代码示例
    • 门面模式的应用场景

模板方法模式

模板方法模式非常简单,就是定义了一个固定的公共流程,整个流程有哪些步骤是事先定义好的,具体的步骤则交由子类去实现。属于行为型设计模式。
简单来说就是将公共的行为抽取出来放到父类中实现,不同的行为则交给子类自己实现

代码示例

模板模式十分简单,我们用其实现一个去银行办理业务的例子,无论你去银行办理什么业务,都需要经过: 取号,排队,办理业务几个步骤 ,这里还增加了一个钩子方法,对于某些特殊的情形,可以增加额外的处理步骤

public abstract class AbstractBank {public void doBiz() {if(!isVip()) {getNum();waitForCall();}doBusiness();}protected abstract boolean isVip();public abstract void doBusiness();private void waitForCall() {System.out.println("排队中,等待叫号...");}private void getNum() {System.out.println("取号,准备排队...");}}
public class CrashBusiness extends AbstractBank{@Overrideprotected boolean isVip() {return false;}@Overridepublic void doBusiness() {System.out.println("办理现金业务...");}
}
public class DebitBusiness extends AbstractBank{@Overrideprotected boolean isVip() {return true;}@Overridepublic void doBusiness() {System.out.println("办理贷款业务.....");}
}
public class Test {public static void main(String[] args) {CrashBusiness crashBusiness = new CrashBusiness();crashBusiness.doBiz();new DebitBusiness().doBiz();}
}

门面模式

门⾯模式,也叫外观模式,英⽂全称是 Facade Design Pattern。
在 GoF 的《设计模式》⼀书中,门⾯模式是这样定义的:

Provide a unified interface to a set of interfaces in a subsystem. Facade Pattern defines a higher-level interface that makes the subsystem easier to use.

门⾯模式为⼦系统提供⼀组统⼀的接⼝,定义⼀组⾼层接⼝让⼦系统更易⽤。属于结构型模式。

经典的例子就是app和服务端的交互,app有一个复杂模块,需要从三个系统获取对应的数据来组装,如果app之间和三个系统交互,就要进行三次网络传输,增加一个中间层,将三个系统的接口进行整合封装,对外提供一个接口给app调用,那么就能明显提高性能

代码示例

我们需要根据用户的账号获取其订单信息, 那么我们先需要根据用户账号判断其是否已登录,已登录的用户才可以 根据其账号获取到对应的id,然后再获取id对应的订单信息


public class LoginService {public boolean isLogin(String account) {return true;}
}public class GetUserInfo {public int getUserId(String account) {System.out.println("根据用户名称获取用户id");return 1;}
}
public class GetUserOrderList {public List<String> getOrderList(Integer id) {System.out.println("根据用户id找出其订单");return new ArrayList<>();}
}
public class OrderService {GetUserInfo userInfo = new GetUserInfo();GetUserOrderList userOrderList = new GetUserOrderList();LoginService loginService = new LoginService();public List<String> getOrderByUser(String account) throws Exception {if (loginService.isLogin(account)) {Integer id = userInfo.getUserId(account);return userOrderList.getOrderList(id);}throw new Exception("not login");}
}
public class Test {public static void main(String[] args) throws Exception {OrderService service = new OrderService();service.getOrderByUser("xiaoming");}
}

门面模式的应用场景

  1. 解决易⽤性问题

门⾯模式可以⽤来封装系统的底层实现,隐藏系统的复杂性,提供⼀组更加简单易⽤、更⾼层的接⼝。⽐如,Linux 系统的调⽤函数就可以看作⼀种“门⾯”。它是 Linux 操作系统暴露给开发者的⼀组“特殊”的编程接⼝,它封装了底层更基础的 Linux 内核调⽤。
从隐藏实现复杂性,提供更易⽤接⼝这个意图来看,门⾯模式有点类似之前讲到的迪⽶特法则(最少知道原则)和接⼝隔离原则:两个有交互的系统,只暴露有限的必要的接⼝。
除此之外,门⾯模式还有点类似之前提到封装、抽象的设计思想,提供更抽象的接⼝,封装底层实现细节。

  1. 解决性能问题
    通过将多个接⼝调⽤替换为⼀个门⾯接⼝调⽤,减少⽹络通信成本,提⾼ App 客户端的响应速度。
http://www.tj-hxxt.cn/news/38384.html

相关文章:

  • 电影网站开发任务书网站seo方案案例
  • wordpress 插件站百度实时热点排行榜
  • 网站制作动态转静态怎么做北京seo做排名
  • 东莞建设培训中心网站seo完整教程视频教程
  • 信息化建设办公室网站推广赚钱的平台有哪些
  • 万网购买网站吸引顾客的营销策略
  • wordpress获取页面tag南宁seo外包靠谱吗
  • 网页版游戏排行榜传奇石家庄百度推广优化排名
  • phpstudy怎么做网站口碑营销的重要性
  • 有了php源码怎么做网站jsurl转码
  • java网站开发属于什么职能优化网站排名公司
  • 找网站开发常见的网络营销推广方式有哪些
  • ps网站主页按钮怎么做百度网站推广价格查询
  • 南京 网站建设线上宣传方式有哪些
  • 网站子域名长春seo培训
  • 怎么建企业自己的网站吗百度一下点击搜索
  • 要制作自己的网站需要什么材料搜狗推广登录入口
  • 建设银行的官方网站积分商场成都疫情最新情况
  • 网站建设 样板baidu com百度一下
  • 外贸推广产品windows优化大师怎么彻底删除
  • 重庆建设工程网站宣传产品的方式
  • 杭州微网站建设查收录网站
  • 网站及数据库怎么做后门google搜索入口
  • 网站设计开发文档模板高粱seo博客
  • 用dw做教学网站国外广告联盟平台
  • 网站第三方评价如何做百度推广排名怎么做的
  • 制作企业网站首页站长工具无内鬼放心开车禁止收费
  • 外贸网站建设网页成都网站建设技术外包
  • 写作网站新手2020新闻大事件摘抄
  • 重庆sem网站推广seo在线培训机构排名