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

南京中小企业网站制作wordpress 评论id

南京中小企业网站制作,wordpress 评论id,阿里云企航域名购买方式,系统优化有什么用Go和Java实现外观模式 下面我们通过一个构造各种形状的案例来说明外观模式的使用。 1、外观模式 外观模式隐藏系统的复杂性#xff0c;并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型 模式#xff0c;它向现有的系统添加一个接口#xff…Go和Java实现外观模式 下面我们通过一个构造各种形状的案例来说明外观模式的使用。 1、外观模式 外观模式隐藏系统的复杂性并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型 模式它向现有的系统添加一个接口来隐藏系统的复杂性。 这种模式涉及到一个单一的类该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。 意图为子系统中的一组接口提供一个一致的界面外观模式定义了一个高层接口这个接口使得这一子系统 更加容易使用。 主要解决降低访问复杂系统的内部子系统时的复杂度简化客户端之间的接口。 何时使用1、客户端不需要知道系统内部的复杂联系整个系统只需提供一个接待员即可。 2、定义系统 的入口。 如何解决客户端不与系统耦合外观类与系统耦合。 关键代码在客户端和复杂系统之间再加一层这一层将调用顺序、依赖关系等处理好。 应用实例1、去医院看病可能要去挂号、门诊、划价、取药让患者或患者家属觉得很复杂如果有提供 接待人员只让接待人员来处理就很方便。 2、JAVA 的三层开发模式。 优点1、减少系统相互依赖。 2、提高灵活性。 3、提高了安全性。 缺点不符合开闭原则如果要改东西很麻烦继承重写都不合适。 使用场景1、为复杂的模块或子系统提供外界访问的模块。 2、子系统相对独立。 3、预防低水平人员带来 的风险。 注意事项在层次化结构中可以使用外观模式定义系统中每一层的入口。 适用性 当你要为一个复杂子系统提供一个简单接口时子系统往往因为不断演化而变得越来越复杂。大多数模式使用 时都会产生更多更小的类这使得子系统更具可重用性也更容易对子系统进行定制但这也给那些不需要定 制子系统的用户带来一些使用上的困难。Facade 可以提供一个简单的缺省视图这一视图对大多数用户来说 已经足够而那些需要更多的可定制性的用户可以越过 facade 层。 客户程序与抽象类的实现部分之间存在着很大的依赖性引入 facade 将这个子系统与客户以及其他的子系统 分离可以提高子系统的独立性和可移植性。 当你需要构建一个层次结构的子系统时使用 facade 模式定义子系统中每层的入口点如果子系统之间是相 互依赖的你可以让它们仅通过 facade 进行通讯从而简化了它们之间的依赖关系。 2、Go实现外观模式 package facade// Shape type Shape interface {draw() }package facadeimport fmt// Circle type Circle struct { }func (circle *Circle) draw() {fmt.Println(Circle::draw()) }package facadeimport fmt// Rectangle type Rectangle struct { }func (rectangle *Rectangle) draw() {fmt.Println(Rectangle::draw()) }package facadeimport fmt// Square type Square struct { }func (Square *Square) draw() {fmt.Println(Square::draw()) }package facade// ShapeFacade type ShapeFacade struct {circle Circlerectangle Rectanglesquare Square }func NewShapeFacade() ShapeFacade {return ShapeFacade{circle: Circle{},rectangle: Rectangle{},square: Square{},} }func (shapeFacade *ShapeFacade) DrawCircle() {shapeFacade.circle.draw() }func (shapeFacade *ShapeFacade) DrawRectangle() {shapeFacade.rectangle.draw() }func (shapeFacade *ShapeFacade) DrawSquare() {shapeFacade.square.draw() }# 输出 Circle::draw() Rectangle::draw() Square::draw()3、Java实现外观模式 package facade;// Shape public interface Shape {void draw(); }package facade;// Rectangle public class Rectangle implements Shape{Overridepublic void draw() {System.out.println(Rectangle::draw());} }package facade;// Circle public class Circle implements Shape{Overridepublic void draw() {System.out.println(Circle::draw());} }package facade;// Square public class Square implements Shape{Overridepublic void draw() {System.out.println(Square::draw());} }package facade;// ShapeFacade public class ShapeFacade {private Shape circle;private Shape rectangle;private Shape square;public ShapeFacade() {circle new Circle();rectangle new Rectangle();square new Square();}public void drawCircle(){circle.draw();}public void drawRectangle(){rectangle.draw();}public void drawSquare(){square.draw();} }package facade;public class Test {public static void main(String[] args) {ShapeFacade shapeFacade new ShapeFacade();shapeFacade.drawCircle();shapeFacade.drawRectangle();shapeFacade.drawSquare();} }# 输出 Circle::draw() Rectangle::draw() Square::draw()
http://www.dnsts.com.cn/news/188689.html

相关文章:

  • 技术支持 昆明网站建设常德做网站公司
  • 在什么网站上做精帖iis 多网站安全设置
  • 网站下雪特效dw如何做网站界面
  • 九寨沟网站建设规划书网站怎样做反向链接
  • 昆山自适应网站建设用vue element-ui做的网站
  • 石家庄建立网站汉川市城乡建设局网站
  • 百度上公司做网站网站搭建设计 是什么意思
  • 厦门市住宅建设办公室网站南浔做网站
  • 网站设计摘要 优帮云百度保障中心人工电话
  • 网站建设平台硬件要求深圳住建招标网官网
  • 营销型网站建设哪家专业深圳网站制作大运软件小镇
  • 优化网站链接的方法网站建设公司广东
  • 完全免费网站源码企业网站推广的一般策略
  • 松岗做网站公司wordpress安装提示500错误
  • 重庆龙华网站建设公司建网站需要买服务器吗
  • 深圳网站优化最好的方法公司网站制作费计入会计什么科目
  • 有模版之后怎么做网站有没有免费装修设计的网站
  • 汽车设计网站转团关系必须用电脑吗
  • 珠海专业网站建设公司哪个网站是专门做兼职的
  • 二级域名如何绑定网站做网站 域名 网站 空间
  • 求职网站网页模板网站建设 销售
  • 湖州本地做网站在线教育类网站模板
  • 奇迹网站架设视频网站建设php文件放哪里
  • 网站外链建设的15个小技巧西青做网站公司
  • 外贸网站建设制作崇明建设镇虹桥村网站
  • seo优化网站词专业建站网站服务
  • 领先的手机网站设计公司简介模板怎么做
  • 公众号做电影网站赚钱海北公司网站建设多少钱
  • 聚牛网站建设公司html结构代码
  • 常州网站建设专业的公司微信公众号买卖平台