29
ITEC 320 Lecture 12 Higher level usage of pointers

ITEC 320

  • Upload
    rafe

  • View
    29

  • Download
    1

Embed Size (px)

DESCRIPTION

ITEC 320. Lecture 12 Higher level usage of pointers. Review. Linked list Pointer usage Package design. Problems. What are the major problems with pointers?. Reference counting. Each object has to be uniquely tracked in a system The number of pointers to that object is also counted - PowerPoint PPT Presentation

Citation preview

ITEC 320

Lecture 12Higher level usage of pointers

Pointers

Review

• Linked list– Pointer usage– Package design

Pointers

Problems

• What are the major problems with pointers?

Pointers

Reference counting

• Each object has to be uniquely tracked in a system

• The number of pointers to that object is also counted

• Whenever a pointer is disposed, the reference count is decreased

• What happens when it reaches 0?• What problem does this resolve?

Pointers

Smart pointers

• Contain regular pointers• Also contain number of other

pointers that are pointing to the object

• Or do they…–What if an object contains the number of

pointers to itself?– Benefits / downsides

• Designs for this

Pointers

Factories

• In your words, what are they?

Pointers

Approaches

• Function that returns an object• Function that takes an object and

returns a pointer• Function that takes an id and returns

a pointer to it• Hash map for memory addresses and

# of accesses• Others?

Pointers

Advantages/Disadvantages

• Why use factories?• What do they mean for your code?• Benefits• Downsides

Pointers

Flyweight

• What does the word bring to mind?• One object / pointer reused lots and

lots of times• Similar to NULL except it is a type /

pointer• What reasons do you think you would

use a flyweight object?• Benefits / Downsides

Pointers

Disk buffer

• How many GB does a DVD hold?• 3 DVD game• How does that game load everything

into RAM? Or does it load everything into RAM?

• Memory Mapping to HD idea

Pointers

How it works

• Several blocks of data reserved in memory

• Each block maps to a unique block on a HD

• Data is requested, it is loaded from HD – If it is in list, use it, move to MRU

position– If it isn’t, load into least recently used

block and move it to the MRU position– Linked list of blocks?

Pointers

What it enables

Pointers

Design patterns

• Not language specific features• Encompasses a particular idea• May or may not be heavily supported

in a language– Java supports smart pointers by default– C++ requires a separate class

• Not a silver bullet

Pointers

Command pattern

• Signals when an action needs to be performed

CommandCentral

Contains pointers to objectsContains list of commandsTold to execute X, it actuallydoes it

Pointers

Cell phones

• How do they work (communication side)

Pointers

Cell Networks

Pointers

Other scenarios

• Computer networks• Google maps• Facebook friends• Gaming

Pointers

Rationale

• How do you model a cell phone network on a computer?

• Why would you want to simulate a cell phone network?

Pointers

Graphs

• Composed of vertices and edges• Vertices– Represent an object in a graph

• Edges– A connection between two vertices

Pointers

Variations

• Weighted graph– Toll road– Hotel cost– Identifiers

• Possible usage scenarios?

Pointers

Methods of implementation

• Arrays• Pointers• Benefits of each approach• Downsides of each approach

Pointers

Code

• Should we use a package?• What about generics?

Pointers

Searching

• How do you find information in a graph?

Destination

Start

Pointers

Breadth first

• For each node I am connected to– Is this the node I’m looking for?

• If I didn’t find it– For each node I am connected to• Call breadth first search on it

Pointers

Depth first

• If I am the node searched for, stop and return

• For each node I am connected to– Call depth first search on that node

Pointers

Issues

• What are some of the issues that might happen with searching?

• How do you implement each way?– Stacks / Recursion / Packages / ?

Pointers

More

• How do you pick the best path?– Lowest cost– Highest cost– Cover all points with least overlap

Pointers

Summary

• Rationale for graph theory• Approach• Finding algorithms

Pointers

Summary

• Memory usage at a higher level