Place sections of pipe in the pond for your fish to hide in. You can also use pots turned on their sides or other items that they can use for a refuge when they see a heron approaching or standing in the pond.
Add plants around the pond that will overhang the water. This not only adds shade for the fish, it blocks a heron's view from the sky. Pond lilies also do a good job of blocking the fish from view.
Install netting over the surface of the pond to prevent attacks from herons. Although this is not a pretty solution, you can use it as a temporary one after a heron attack. After a heron knows there are fish in your pond, it will come back. However, with netting installed, it will not be able to pick up the fish and will eventually move to a different location for feeding.
Create a feeding routine with your fish. If you enjoy feeding your fish in the morning, do so every morning. This will teach your fish to come to the surface only in the morning. However, make periodic stops at your pond each day at different times so that any heron watching your pond will not know when you will be around. Herons are afraid of people and will reduce their trips to your pond if there's a chance of meeting a human.