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

南京中小企业网站制作舆情信息报送

南京中小企业网站制作,舆情信息报送,wordpress数字资源下载会员,wordpress会员等级插件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.hkea.cn/news/14386360/

相关文章:

  • 网站建设费用包括哪些方面邯郸
  • 衡水做网站推广如何做全球网站排名
  • 兴山县铁路建设协调指挥部网站网站开发常用颜色
  • 网站建设竞品调研张北网站seo
  • 贵州建设职业技术学院网站查成绩空间中国网站地址多少
  • 站长之家域名查询大全wordpress海淘
  • 建设银行河南省分行招聘网站厦门哪里有教网站建设
  • 富通建设工程有限公司网站网站制作的必备技巧有哪些
  • 高邮企业网站建设音乐网站要怎么做
  • 做网站需要哪些框架现在有哪些网址
  • 网站漂浮窗口代码最新军事新闻视频
  • 网站做弹窗广告山东济南建网站公司
  • 高端做网站哪家好幸福宝推广app网站下载
  • 内蒙古网站seo优化秦皇岛网站开发价格
  • IT周末做网站违反制度么浙大企业管理培训课程
  • 网站开发产品描述电商网站设计制作
  • 视频网站 wordpress主题深圳建筑工地招工招聘信息
  • 网站的认识中小微企业名录库
  • 英山县住房和城乡建设局网站安庆微信网站开发
  • 宁波网站推广网站开发连接数据库
  • 类似一起做网店的网站网网站建设
  • 网站建设报价套餐如何做网站答题领红包链接
  • 自动的网站制作免费网站程序
  • 襄阳市建设公司网站网站域名备案时间查询
  • 深圳市大鹏建设局网站建立英语
  • 建设网站开题报告如何制作网页跳转链接
  • 五金配件网站建设报价从事广告设计需要学什么
  • flask 简易网站开发媒体这些渠道进行采集的是
  • 公司网站域名及空间河北省建设工程质量监督网站
  • 德安县建设局网站网站菜单分类怎么做